1.主要进行数据的增删改查操作。
分别添加了一个models\Profile.js
数据类型文件和routes\api\profiles.js
路由文件。
Profile.js:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const ProfileSchema = new Schema({
type: {
type: String
},
describe: {
type: String
},
income: {
type: String,
required: true
},
expend: {
type: String,
required: true
},
cash: {
type: String,
required: true
},
remark: {
type: String
},
date: {
type: Date,
default: Date.now
}
});
module.exports = Profile = mongoose.model('profile', ProfileSchema);
profiles.js:
// 资金网关
// @login & register
const express = require('express');
const router = express.Router();
const passport = require('passport');
const Profile = require('../../models/Profile');
// @route GET api/profiles/test
// @desc 返回的请求的json数据
// @access public
router.get('/test', (req, res) => {
res.json({
msg: 'profile works'
});
});
module.exports = router;
在server.js
中引入;
const profiles = require('./routes/api/profiles');
app.use('/api/profiles', profiles);
进行测试:
2.添加信息接口
在routes\api\profiles.js
文件中
// @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;
new Profile(profileFields).save().then(profile => {
res.json(profile);
});
}
);
进行测试:
2.获取单个及所有信息
// @route GET api/profiles/:id
// @desc 获取所有信息
// @access Private
router.get(
'/:id',
passport.authenticate('jwt', {
session: false
}),
(req, res) => {
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));
}
);
3.编辑和删除操作接口的编写
// @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;
Profile.findOneAndUpdate({
_id: req.params.id
}, {
$set: profileFields
}, {
new: true
}).then(profile => res.json(profile));
}
);
4.删除操作
// @route POST api/profiles/delete/:id
// @desc 删除信息接口
// @access Private
router.delete(
'/delete/:id',
passport.authenticate('jwt', {
session: false
}),
(req, res) => {
Profile.findOneAndRemove({
_id: req.params.id
}).then(profile => {
profile.save().then(profile => res.json(profile));
}).catch(err => res.status(404).json('删除失败'));
}
);
测试: