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工具nodemonnpm install -g nodemon
5.配置啟動檔案,pageage.json
"scripts": {
"start": "nodemon http_serve/serve_setting/index.js"
},
透過npm run start
啟動
透過postman驗證一下
至此,我們的後臺介面就定義完成了。