Node 和 Express 中的路由:除非提供完整路径,否则 app.use 不起作用

Dom*_*omi 1 routes node.js express

我有以下设置:

app.use('/', rootRoute);
app.use('/wiki', wikiRoute);

/// default handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});
Run Code Online (Sandbox Code Playgroud)

如果我访问/wiki,我最终会像预期的那样进入wikiRoute,但如果我访问/wiki/some/file,它会触发默认处理程序。我希望它也会去wikiRoute

Dom*_*omi 5

处理子路由需要通配符,如下所示:

app.use('/', rootRoute);
app.use('/wiki/*', wikiRoute);

/// default handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});
Run Code Online (Sandbox Code Playgroud)

现在,/wiki/some/file也结束了wikiRoute