一、创建接口路由文件
const { render } = require('ejs');
var express = require('express');
var router = express.Router();
// 导入 moment
const moment = require('moment');
const AccountModel = require('../../models/accountModel');
/* 记账本列表 */
router.get('/account', function (req, res, next) {
// 读取数据库
AccountModel.find().exec((err, data) => {
if (err) {
res.json({
code: '1001',
msg: '读取失败~~',
data: null
})
return;
}
// 响应成功的提示
res.json({
// 响应编号
code: '0000',
// 响应的信息
msg: '读取成功',
// 响应的数据
data: data
})
})
});
/* 新增记录 */
router.post('/account', function (req, res, next) {
// 插入数据库
AccountModel.create({
...req.body,
// 修改 time 属性的值
time: moment(req.body.time).toDate()
}, (err, data) => {
if (err) {
res.json({
// 响应编号
code: '1002',
// 响应的信息
msg: '创建失败~~',
// 响应的数据
data: data
})
return;
}
res.json({
// 响应编号
code: '0000',
// 响应的信息
msg: '添加成功',
// 响应的数据
data: data
})
})
});
/* 删除记录 */
router.delete('/account/:id', function (req, res, next) {
// 获取 id
let id = req.params.id;
AccountModel.deleteOne({ _id: id }, (err, data) => {
if (err) {
res.json({
// 响应编号
code: '1003',
// 响应的信息
msg: '删除失败~~',
// 响应的数据
data: null
})
return;
}
res.json({
// 响应编号
code: '0000',
// 响应的信息
msg: '删除成功',
// 响应的数据
data: {}
})
})
});
// 获取单个账单信息
router.get('/account/:id', function (req, res, next) {
// 获取 id
let { id } = req.params;
AccountModel.findById(id, (err, data) => {
if (err) {
return res.json({
// 响应编号
code: '1004',
// 响应的信息
msg: '读取失败~~',
// 响应的数据
data: null
})
}
res.json({
// 响应编号
code: '0000',
// 响应的信息
msg: '读取成功',
// 响应的数据
data: data
})
})
});
// 更新单个账单信息
router.patch('/account/:id', (req, res) => {
// 获取 id
let { id } = req.params;
// 更新数据库
AccountModel.updateOne({ _id: id }, req.body, (err, data) => {
if (err) {
return res.json({
// 响应编号
code: '1005',
// 响应的信息
msg: '更新失败~~',
// 响应的数据
data: null
})
}
// 再次查询数据库 获取单条数据 (此处建议另外使用 promise 调用,避免回调地狱)
AccountModel.findById(id, (err, data) => {
if (err) {
return res.json({
// 响应编号
code: '1004',
// 响应的信息
msg: '读取失败~~',
// 响应的数据
data: null
})
}
res.json({
// 响应编号
code: '0000',
// 响应的信息
msg: '更新成功',
// 响应的数据
data: data
})
})
})
})
module.exports = router;
二、修改 app.js 文件
三、使用 Apifox 测试接口