我尝试用另一个回调替换/
路径:
app.get('/', (req, res) => res.send('Hello World!'))
app.get('/', (req, res) => res.send('404'))
但是当我导航到/
路径时,它仍会以Hello World!
而不是404
进行响应,这意味着回调未被替换。有没有办法做到这一点?
澄清:
我真正想要做的是在运行时删除路由,但用回复说404
的东西替换回调也可以做到这一点。
答案 0 :(得分:-1)
您的问题并不清楚,但看起来您的代码中存在两条路线。如果是这种情况,那么只会使用第一个。
如果您正在尝试设置某种动态路由(即在应用程序启动后完全替换路由处理程序),我不确定在Express中是否可行。根据{{3}}在运行时删除Express路由时,似乎在首次初始化应用程序时优化了路由,之后没有简单的方法来更改它们。
如果您需要在运行时使用不同的路径,那么执行此操作的方法是在路由回调中。例如:
app.get('/', (req, res) => {
// test something & respond accordingly
if (req.query.someValue === 'do this') {
return res.send('Hello world');
}
// otherwise, return a 404 error
return res.status(404).send('No way, man!');
});