1
我是使用Express和Mongoose創建API的新手。模塊化我的Express/Mongoose API代碼,使其更容易使用
我目前爲一個留言集合設置了CRUD端點。
我想設置CRUD三個或多個集合(如用戶,文章,產品等等)
我想知道的是,如果有一種方法可以每一種分成單獨路由器文件,所以我沒有一個非常長的CRUD每個集合調用頁面。
這是我的API頁面的樣子:
//DEPENDENCIES
var express = require('express');
var router = express.Router();
//GUESTBOOK END POINTS
var Guestbook = require('../models/guestbook')
router.route('/guestbook')
.post(function(req, res) {
var guestbook = new Guestbook();
guestbook.firstname = req.body.firstname;
guestbook.lastname = req.body.lastname;
guestbook.email = req.body.email;
guestbook.postedon = req.body.postedon;
guestbook.comment = req.body.comment;
guestbook.rate = req.body.rate;
guestbook.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Post created!' })
});
})
.get(function(req, res) {
Guestbook.find(function(err, guestbook) {
if (err)
res.send(err);
res.json(guestbook);
});
});
router.route('/guestbook/:id')
.get(function(req, res) {
Guestbook.findById(req.params.id, function(err, guestbook) {
if (err)
res.send(err);
res.json(guestbook);
});
})
.put(function(req, res) {
Guestbook.findById(req.params.id, function(err, guestbook) {
if (err)
res.send(err);
//USING OBJECT.KEYS TO UPDATE ONLY PARAMS PASSED
Object.keys(req.body).forEach(function(prop) {
if (typeof req.body[prop] !== 'undefined') {
guestbook[prop] = req.body[prop];
}
});
guestbook.save(function(err) {
if (err)
res.send(err);
res.json(guestbook);
});
});
})
.delete(function(req, res) {
Guestbook.remove({ _id: req.params.id }, function(err, guestbook) {
if (err)
res.send(err);
res.json({ message: 'Successfully deleted!' });
});
});
//RETURN ROUTER AS MODULE
module.exports = router;
那麼,我一直都在問自己如何在不同的文件中分隔不同的路線。 – AndreaM16
你知道我可能會看到一個很好的例子嗎? – cnak2