在ExpressJS中,注册路由模块如下所示:
app.use(app.router);你创造了这样一条路线:
app.get('/user/:id', function(req, res){
...
});问题是,如果您在注册路由模块之前创建了一个路由,那么它将立即为您注册。
对我来说,这是一个问题,因为我正在构建一个NPM模块,为自己创建一条路线。现在,它有一个不幸的副作用-注册路由模块,而用户不知道。因此,如果它们在注册静态文件处理程序之前碰巧需要我的模块,那么它会破坏一切。
所以我的问题是,在不自动注册路由模块的情况下,我如何注册路由?
发布于 2013-09-19 04:10:10
我想您的模块需要用户传递他们的应用程序,就像这样:
module.exports = function(userApp) {
userApp.get(...);
...
}相反,开发一个新的Express应用程序并导出:
var express = require('express'),
app = express();
app.get(...);
...
module.exports = app;与其让用户将他们的应用程序传递给您,不如让他们use您导出的应用程序:
var express = require('express'),
yourModule = require('your-module'),
userApp = express();
userApp.use(express.static(...));
userApp.use(yourModule);https://stackoverflow.com/questions/18884714
复制相似问题