简易的express、mongoDB、apidoc的使用

express

创建项目

创建express项目的时候可以指定使用的模板,比如--view=ejs/pug/jade等。
如果没有指定模板,默认使用jade模板。
项目创建后需要安装项目依赖的第三方依赖库(第三方模块),使用npm i或yarn
依赖安装后会多一个node_modules的文件夹。

项目的运行

项目创建完成及安装依赖后可以进行运行,运行的命令可以在生成的package.json中查看。
其中dependencies中的是第三方模块的依赖。
scripts中是运行命令的配置。可以根据配置进行运行。npm使用npm run 配置名进行运行。

运行的方式的优化

每次修改文件后需要重启,否则不会立即跟新,因此我们可以使用nodemon来实时启动跟新后的项目。

方案1:使用nodemon
安装nodemon后在运行中配置使用nodemon来运行项目即可实时更新。
方案2:使用supervisor。使用方法和nodemon相同。安装后在package.json中添加运行命令。

接口文档的编写

在项目下创建api文件夹,用于存放接口文件。

在写接口文当前,必须明白接口文件和路由的区别。
api是接口文档---前端开发使用的。
路由(router)是运维人员查看的。

在api文件夹里面配置好相关的接口文件。

使所有的接口文件生效:app.js中引入接口及注册接口。

引入接口文件
var bannerApi = require('./api/banner')
注册接口
app.use('/banner',bannerApi),也可以在/banner前面加上api,避免产生冲突。

编写api文档

安装apidoc来生成api文档
安装方法 cnpm i apidoc -g

apidoc的使用方法

package.json中配置apidoc的title和url

"apidoc":{
     
    "title" : "lx的接口文档",
    "url" : "http://localhost:3000/"
}

运行命令控制输入和输出

apidoc -i api/ -o public/apidoc/

-i输入路劲,-o输出路劲。

在api中用多行注释的方法进行配置

/**
*@api {请求方式} 功能说明  请求方式两边不能有空格  否则会报错
*@apiDescript api的描述
*@apiName pro 接口
*@apiGroup 群组
*@apiParam { 变量 } 变量说明
*@apiSuccessExample {json} Success-Response:
*{
*	数据格式示例
*}
*@apiSampleRequest /api/pro这个是模拟请求的入口
*@apiVersion 1.0.0设置版本
*/

创建数据库

这里使用mongoose来连接MongoDB数据库

安装

cnpm i mongoose -S

配置MongoDB的链接

const mongoose = require('mongoose')
//定义链接地址
const DB_URL = "mongodb://localhost:27017/集合名称"
//进行连接
mongoose.connect(DB_URL)
//连接成果提示
mongoose.connection.on('connected',()=>{
     
    console.log('连接成功')
})
//连接断开
mongoose.connection.on('disconnected',()=>{
     
    console.log('连接被断开')
})
//连接错误
mongoose.connection.on('error',()=>{
     
    console.log('连接出现错误')
})
//导出
module.exports = mongoose

每个配置的时候引入该模块进行配置

此处以banner为例

在db的目录下新建一个col文件夹来存放每个api连接数据库的文件

const mongoose = require('../db')
const Schema = mongoose.schema
// 定义数据的类型
const schema = new Schema({
     
    bannerid: {
     type:String},
    img: {
     type:String},
    alt: {
     type:String},
    href: {
     type:String}                   
})

你可能感兴趣的:(JS,node.js,mongodb)