显然,添加路由以表达的典型示例如下所示:
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
显然,在大多数情况下,您知道get在服务器开始侦听之前存在路由.但是如果你想在服务器监听时动态创建新路由怎么办?换句话说,我想做类似以下的事情:
var express = require('express');
var app = express();
app.listen(3000, function () {
app.get('/', function(req, res){
res.send('hello world');
});
});
Run Code Online (Sandbox Code Playgroud)
实际上,路由的回调显然是从某个远程源动态提取的.我已经测试了上面的代码,一切看起来都运行正常,但是,我希望得到确认,在我继续使用这种模式之前调用app.listen之后不会出现任何意外的副作用.
注意:为了澄清,我不知道当我编写server.js将要创建快速服务器的主文件时路由是什么(因此我无法在listen调用之前创建路由).在服务器启动/运行时,将从数据库中提取路由列表(及其各自的处理程序/回调函数).
我已经使用Node.js和npm几周并取得了巨大成功,并开始质疑安装本地模块的最佳实践.我理解Global vs Local参数,但是,我的问题更多地与放置本地安装的位置有关.假设我有一个项目位于~/ProjectA/版本控制并由多个开发人员处理.当最初使用Node.js和npm时,我不知道默认的本地安装路径,只是简单地在默认终端中安装了必要的模块,导致安装路径为~/node_modules.最终做的是要求所有其他开发项目的开发人员在自己的机器上安装模块以运行应用程序.看到一些开发人员在哪里运行npm install我仍然感到非常惊讶它在他们的机器上工作(我猜它与Node.js和require()如何查找模块有关),但不用说,它有效.
既然项目已经过了"玩弄"阶段,我想正确设置项目文件夹.所以,我的问题是,模块是否应该安装在~/ProjectA/node_modules版本控制的项目文件中,因此它应该是版本控制的项目文件的一部分,还是应该继续位于特定于开发人员的机器位置......或者它真的不重要吗?
我只是在寻找一个关于这个的"最佳实践"指导以及其他人在设置项目时所做的工作.