首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建ExpressJS路由而不注册路由模块

创建ExpressJS路由而不注册路由模块
EN

Stack Overflow用户
提问于 2013-09-19 01:02:04
回答 1查看 182关注 0票数 1

在ExpressJS中,注册路由模块如下所示:

代码语言:javascript
复制
app.use(app.router);

你创造了这样一条路线:

代码语言:javascript
复制
app.get('/user/:id', function(req, res){
  ...
});

问题是,如果您在注册路由模块之前创建了一个路由,那么它将立即为您注册。

对我来说,这是一个问题,因为我正在构建一个NPM模块,为自己创建一条路线。现在,它有一个不幸的副作用-注册路由模块,而用户不知道。因此,如果它们在注册静态文件处理程序之前碰巧需要我的模块,那么它会破坏一切。

所以我的问题是,在不自动注册路由模块的情况下,我如何注册路由?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 04:10:10

我想您的模块需要用户传递他们的应用程序,就像这样:

代码语言:javascript
复制
module.exports = function(userApp) {
    userApp.get(...);
    ...
}

相反,开发一个新的Express应用程序并导出:

代码语言:javascript
复制
var express = require('express'),
    app = express();

app.get(...);
...

module.exports = app;

与其让用户将他们的应用程序传递给您,不如让他们use您导出的应用程序:

代码语言:javascript
复制
var express = require('express'),
    yourModule = require('your-module'),
    userApp = express();

userApp.use(express.static(...));
userApp.use(yourModule);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18884714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档