可以在收听时添加到Node.js Express的路由吗?

时间:2013-12-31 13:05:56

标签: javascript node.js express

显然,添加路由以表达的典型示例如下所示:

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('hello world');
});

app.listen(3000);

显然,在大多数情况下,您知道服务器开始侦听之前存在get路由。但是如果你想在服务器监听时动态创建新路由怎么办?换句话说,我想做类似以下的事情:

var express = require('express');
var app = express();

app.listen(3000, function () {
  app.get('/', function(req, res){
    res.send('hello world');
  });
});

实际上,路由的回调显然是从某个远程源动态提取的。我已经测试了上面的代码,一切看起来都运行正常,但是,我希望得到确认,在我继续使用这种模式之前调用app.listen之后不会出现任何意外的副作用。

注意:为了澄清,我不知道当我编写将创建快速服务器的主server.js文件时路由是什么(因此我无法在{{1}之前创建路由}} 叫做)。在服务器启动/运行时,将从数据库中提取路由列表(及其各自的处理程序/回调函数)。

1 个答案:

答案 0 :(得分:22)

According to TJ(Express的作者),可以在运行时添加路由。

主要问题是路由按照添加顺序进行评估,因此在运行时添加的路由优先级低于先前添加的路由。根据您的API设计,这可能或不重要。