我希望能够在包含参数的uri上安装一个完整的快速子应用程序。我有类似以下内容:
app.js中的:
var app_authors = require('./api/authors');
var app = express();
...
app.use('/api/authors', app_authors);
...
module.exports = app;
在api / authors.js中:
var app_author_books = require('./api/books');
var app = express();
...
app.get('/:author', ...);
...
app.use('/:author/books', app_author_books);
...
module.exports = app;
当第一个子应用程序工作时,挂载在/api/authors
上,而嵌套的子应用程序却没有(/api/authors/:author/books
及类似形式的网址无法识别)
编辑:
对于好奇的,AFAIK子应用程序的记录不是很清楚,但它们应该起作用,至少根据TJ Holowaychuk's Modular web applications with Node.js and Express(以及相关的vimeo screencast)。另请参阅this其他SO答案。
答案 0 :(得分:0)
您似乎想要创建不同的“应用程序”来分隔不同文件中的路由/服务。
您应该尝试here给出的方法 他们将app变量作为参数传递,因此,您只有一个应用程序可以控制所有路径(位于单独文件中)。
我希望这就是你要找的东西。
答案 1 :(得分:0)
在Express 4中,当您在路径(或正则表达式)上安装子应用程序时,此路径将从req.path中删除(但仍在req.originalUrl中)。
请参阅此github issue和Express 4 doc有关挂载点的信息。