mongoose增删改查

http://www.mongoosejs.net/docs/api.html#findoneandupdate_findOneAndUpdate

Model的API使用

保存内容到数据库 save()

查询所有内容 find()

查询指定内容 findOne()

修改指定条件的数据 findOneAndUpdate()

删除指定条件的数据 findOneAndRemove()

 

findOneAndUpdate()参数说明

 

 

 

// 路由—— 资金流水
const express = require('express');
const router = express.Router();
// 引入 解析token令牌的 passport 库
const passport = require('passport');
//引入Profile数据库操作模型
const Profile = require('../../models/Profile');


// @route  GET api/profiles/test
// @desc   返回的请求的json数据
// @access public
// router.get('/test', (req, res) => {
//   res.json({ msg: 'profile works 测试' });
// });

// @route  POST api/profiles/add
// @desc   创建信息接口
// @access Private
router.post( '/add', passport.authenticate('jwt', { session: false }), (req, res) => {
    const profileFields = {};

    if (req.body.type) profileFields.type = req.body.type;
    if (req.body.describe) profileFields.describe = req.body.describe;
    if (req.body.income) profileFields.income = req.body.income;
    if (req.body.expend) profileFields.expend = req.body.expend;
    if (req.body.cash) profileFields.cash = req.body.cash;
    if (req.body.remark) profileFields.remark = req.body.remark;
    // 将重构好的数据 通过 Profile 模型 添加到数据库 ,成功则向前端返回数据
    // 保存数据的方法 save()
    new Profile(profileFields).save().then(profile => {
      res.json(profile);
    }); }
);

// @route  GET api/profiles
// @desc   获取所有信息
// @access Private

router.get( '/', passport.authenticate('jwt', { session: false }), (req, res) => {
    // mongoose中module的 查询全部数据的方法 find
    Profile.find()
      .then(profile => {
        if (!profile) {
          return res.status(404).json('没有任何内容');
        }

        res.json(profile);
      })
      .catch(err => res.status(404).json(err));
  }
);

// @route  GET api/profiles/:id
// @desc   获取单个信息
// @access Private

router.get(
  '/:id',
  passport.authenticate('jwt', { session: false }),
  (req, res) => {
    // 查询符合条件的一条数据的方法
    Profile.findOne({ _id: req.params.id })
      .then(profile => {
        if (!profile) {
          return res.status(404).json('没有任何内容');
        }

        res.json(profile);
      })
      .catch(err => res.status(404).json(err));
  }
);

// @route  POST api/profiles/edit
// @desc   编辑信息接口
// @access Private
router.post(
  '/edit/:id',
  passport.authenticate('jwt', { session: false }),
  (req, res) => {
    const profileFields = {};

    if (req.body.type) profileFields.type = req.body.type;
    if (req.body.describe) profileFields.describe = req.body.describe;
    if (req.body.income) profileFields.income = req.body.income;
    if (req.body.expend) profileFields.expend = req.body.expend;
    if (req.body.cash) profileFields.cash = req.body.cash;
    if (req.body.remark) profileFields.remark = req.body.remark;

    // 修改指定数据的方法findOneAndUpdate
    // Model.findOneAndUpdate(query, { $set: { name: 'jason bourne' }}, options, callback)
    Profile.findOneAndUpdate(
      { _id: req.params.id },
      { $set: profileFields },
      // new: bool—如果为真,返回修改后的文档,而不是原始文档。默认为false(4.0中更改)
      { new: true }
    ).then(profile => res.json(profile));
  }
);

// @route  POST api/profiles/delete/:id
// @desc   删除信息接口
// @access Private
router.delete(
  '/delete/:id',
  passport.authenticate('jwt', { session: false }),
  (req, res) => {
    // 删除指定条件的一条数据的方法 findOneAndRemove
    Profile.findOneAndRemove({ _id: req.params.id })
      .then(profile => {
        profile.save().then(profile => res.json(profile));
      })
      .catch(err => res.status(404).json('删除失败!'));
  }
);

module.exports = router;

 

posted @ 2020-04-18 19:47  终南墨客  阅读(557)  评论(0编辑  收藏  举报