用express+mongoose快速开发API接口
1.初始化项目npm init -y
2.使用Express框架创建服务器,用mongoose连接数据库,cors解决跨域npm i express mongoose cors
3.新建一个文件夹http_serve,目录结构
文章图片
【用express+mongoose快速开发API接口】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 = https://www.it610.com/article/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 = https://www.it610.com/article/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 } = mongooseconst 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验证一下
文章图片
至此,我们的后台接口就定义完成了。
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。