在不注册路由模块的情况下创buildExpressJS路由
在ExpressJS中,您可以像这样注册路由模块:
app.use(app.router);
你创build一个这样的路线:
app.get('/user/:id', function(req, res){ ... });
问题是,如果您在注册路由模块之前创build路由,那么它将立即为您注册。
对我来说,这是一个问题,因为我正在build立一个NPM模块,为自己创build一个path。 目前,在用户不知情的情况下,注册路由模块就有不幸的副作用。 所以,如果他们在注册静态文件处理程序之前碰巧需要我的模块,那么它会破坏一切。
所以我的问题是,如何注册一个路由而不自动注册路由模块?
我想你的模块需要用户通过他们的应用程序,有点像这样:
module.exports = function(userApp) { userApp.get(...); ... }
相反,制作一个新的快速应用程序并导出:
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);