動態

詳情 返回 返回

用express+mongoose快速開發API接口 - 動態 詳情

1.初始化項目
npm init -y

2.使用Express框架創建服務器,用mongoose連接數據庫,cors解決跨域
npm i express mongoose cors

3.新建一個文件夾http_serve,目錄結構
image.png

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啓動
image.png

通過postman驗證一下
image.png

至此,我們的後台接口就定義完成了。

Add a new 評論

Some HTML is okay.