我正在设计一个快速节点应用程序。
假设我有2条路径
“/帖/:帖子ID /更新”
“/帖/:帖子ID /上传”
我想知道当人们访问第二条路径时,路由可以自动运行第一条路径吗?
答案 0 :(得分:3)
您可以定义路线
var routes = require('./routes');
app.get('/posts/:postId/update', routes.update);
app.get('/posts/:postId/upload', routes.upload, routes.update);
所以在routes.upload
内你可以做类似
route.upload = function(req, res, next) {
// do whatever you need to
// this will call the next function defined
// in your route definition, which is update
next();
};
答案 1 :(得分:0)
您可以创建对第一个路径句柄的单个引用,并在第二个路径的句柄中调用它:
function updatePost(req, res) {
res.send('Updated');
}
app.post('/posts/:postId/update', updatePost);
app.post('/posts/:postId/upload', function upload(req, res) {
const upload = req.file; // this property will differ depending upon your upload middleware
// some app logic
updatePost(req, res);
});
此外,您应该考虑使用express.Router
将路由与服务器代码分离。