乐趣区

关于mongoose:用expressmongoose快速开发API接口

1. 初始化我的项目
npm init -y

2. 应用 Express 框架创立服务器,用 mongoose 连贯数据库,cors 解决跨域
npm i express mongoose cors

3. 新建一个文件夹 http_serve,目录构造

3.1 index.js 文件,启动 node 服务

const express = require('express')
const cors = require('cors')
const app = express()

// 解决跨域
app.use(cors())
//express 内置了 post 参数解析
app.use(express.urlencoded({ extended: false}))

const apiRouter = require('./router')
app.use(apiRouter)

app.listen(3008, function () {console.log('app is runing at port 3008');
})

3.2 db.js 连贯 mongoDB

const mongoose = require('mongoose')

const IP = 'localhost'
const PORT = 27017
const DB_NAME = 'org'

// 连贯
mongoose.connect(`mongodb://${IP}:${PORT}/${DB_NAME}`, {useNewUrlParser: true})

// 连贯胜利
mongoose.connection.on('connected', () => {console.log('Mongoose connection success')
})

// 连贯异样
mongoose.connection.on('error', (err) => {console.log('Mongoose connection error:' + err)
})

// 连贯胜利
mongoose.connection.on('disconnected', () => {console.log('Mongoose connection disconnected')
})

module.exports = mongoose

3.3 router.js 定义接口以及办法

const express = require('express')
const router = express.Router()

const dataList = require('../serve_schema/dataList')

let result = {
  code: 200,
  msg: 'ok'
}

// 创立数据
router.post('/postData', async (req, res) => {let postData = new dataList({ ...req.body})
  await postData.save(err => {if (err) {throw err} else {res.json({ ...result})
    }
  })
})

// 获取数据
router.get('/getList', async (req, res) => {let { start, limit} = req.query
  if (start == undefined) {start = 0;}
  if (limit == undefined) {limit = 10;}
  let data = await dataList.find().skip(Number(start)).limit(Number(limit));
  res.json({...result, data})
})

module.exports = router

3.4 serve_scheam 文件夹下的 dataList.js,创立数据库模型,也就是创立一个数据库的表,用来存数据,设置数据的一些字段等。

const mongoose = require('../serve_setting/db')
const {Schema} = mongoose

const userSchema = new Schema({username: { type: String},
  password: {type: String},
  email: {type: String},
  mobile: {type: String},
  status: {type: Number, default: 1},
}, {versionKey: false})
// versionKey 不显示版本字段

module.exports = mongoose.model('User', userSchema, 'user')
// 第三个参数,指定汇合名,不主动匹配对应的复数模式 users。

4. 全局装置一个主动重启的 node 工具 nodemon
npm install -g nodemon

5. 配置启动文件,pageage.json

  "scripts": {"start": "nodemon http_serve/serve_setting/index.js"},

通过 npm run start 启动

通过 postman 验证一下

至此,咱们的后盾接口就定义实现了。

退出移动版