我正在构建一个具有基本CRUD操作的网络形式的webapp。我正在分割我的路由器文件,因为它们变得相当大。
我有一个“行动”路线,可以选择在个人帖子中查看,在帖子上投票,查看个人资料和赞扬用户。我似乎无法找到一种方法允许我将这些“动作”路线分成单独的文件,然后在主路线中根据需要使用它们。
//index.js file in routes folder
var express = require('express');
var router = express.Router();
//main route
router.route('/feed')
.get(function(req, res, next){
//some code here
}
//actions.js file in routes folder
var express = require('express');
var router = express.Router();
//vote route
router.route('/vote/:id')
.post(function(req, res, next){
//some code here
}
//item route
router.route('/item/:id')
.get(function(req, res, next){
//some code here
}
我希望能够使用Feed路线(和其他路线)内的动作路线所以我可以做像
这样的事情POST /feed/vote/postid12356
GET /feed/item/itemid123456
甚至在另一条名为'private-feed'的路线中使用动作路线中的相同动作
POST /private-feed/vote/postid12356
GET /private-feed/item/itemid123456
无需在许多路线中重复这些操作。
有什么方法表达可以做到这一点吗?
答案 0 :(得分:1)
您可以将路由处理程序解压缩到一个单独的文件中,让我们将它们称为controllers
,然后在某些路径中重用逻辑:
//controllers/action.js
module.exports = {
get: (req, res, next) => {
//your post logic
}
}
///routes/item.js
const ActionController = require("../controllers/action");
router.route('/item/:id').get(ActionController.get);
module.exports = router;