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;