项目结合 api

一、创建接口路由文件
在这里插入图片描述

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 测试接口
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值