我无法让 .get() 正常工作。我对 .use() 与 .get() 的理解是 .use() 用于我们想要应用内容的路径,而 .get() 更具体(选择要应用的特定网址)
在我的示例中,我想对任何页码显示“适用于所有页面”,但如果我输入“/28”,我希望显示 .get 消息。现在,即使我转到/28,我也会收到 .use 消息。
router.use('/:id', function(req, res){
console.log("Things " + Date.now());
res.send('Applies to all pages ' + req.params.id);
});
router.get('/28', function(req, res){
res.send('Secret 28 page');
});
最佳答案
use
方法用于将所有 http
谓词从您的 Express app
或表达路由器
。使用use
时必须考虑优先级。在这里,发生的情况是,您已经在动态路由器中使用了 use
作为 router.use('/:id', ...)
,这将需要 也获取
请求。
您可以先使用get
路由器,这样它只接受/28
中的get
请求,并将所有未处理的请求转移到其他路径。
router.get('/28', function(req, res){
res.send('Secret 28 page');
});
router.use('/:id', function(req, res){
console.log("Things " + Date.now());
res.send('Applies to all pages ' + req.params.id);
});
关于javascript - 使用 Express 指定特定路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539926/