我在Node.js的连接和快速utils的
的世界新根据这一话题:What is Node.js' Connect, Express and “middleware”?
我得知Connect是的Express
部分我在代码中挖一点点,我发现了两个很有意思的文件:
./myProject/node_modules/express/lib/utils.js
更好:
./myProject/node_modules/express/node_modules/connect/lib/utils.js
这两个文件充满了有用的功能,我想知道如何正确调用它们。
据,在./myProject/app.js
,这就是我做的:
var express = require('express')
, resource = require('express-resource')
, mongoose = require('mongoose')
, expresstUtils =
require('./node_modules/express/lib/utils.js');
, connectUtils =
require('./node_modules/express/node_modules/connect/lib/utils.js');
但我发现它有点笨拙,那我的其他文件?
例如,这里是我的路线之一:
myResources = app.resource(
'myresources',
require('./routes/myresources.js'));
这里是myresources.js
内容:
exports.index = function(req, res)
{
res.render('./myresources.jade', { title: 'My Resources' });
};
exports.show = function(req, res)
{
fonction resourceIsWellFormatted(param)
{
// Here is some code to determine whether the resource requested
// match with the required format or not
// return true if the format is ok
// return false if not
}
if (resourceIsWellFormatted(req.params['myresources']))
{
// render the resource
}
else
{
res.send(400); // HEY! what about the nice Connect.badRequest in its utils.js?
}
};
正如你可以在res.send(400)
后的评论看,我问自己,如果可以使用Connect模块的utils.js
文件中的badRequest
函数。
那么md5
函数在同一个文件中呢?
我必须把这个在我的myresources.js
开始hugly调用使用它们?:
var connectUtils =
require('../node_modules/express/node_modules/connect/lib/utils.js');
,或者是有(即使是app.js
)一个更优雅的解决方案吗?
非常感谢您的帮助!
你不能指望这种技术是未来的证明。 'express @ 4.0.0'可能会彻底改变它在内部的功能,并且你可能会放弃'connect'(不太可能,但你明白了)。再次,如果您要在项目的依赖项中包含'connect'(与'express'使用的版本相同),此技术将无法工作。 – 2012-08-29 10:29:23
@GauthamBadhrinathan我不会预见快速下降连接很快:)然而,连接可以很容易地改变他们的文件或它们的位置 - 哪些恕我直言是一个更大的危险。 即使包含连接到项目的依赖关系中,该技术仍然可以工作,路径仍然指向表达式,因此node.js将首先表达。 from node.js文档(文件模块)部分: *没有前导'/'或'。/'来表示一个文件,该模块可能是一个“核心模块”,或者是从node_modules文件夹加载的。* http://nodejs.org/api/all.html#all_file_modules – Leonidaz 2012-09-09 17:46:52
是的,它会去'express '这是一个“核心模块”或者在“node_modules”中。但是,如果'connect'被添加为项目依赖项,那么在'express/node_modules'目录内不会找到名为'connect' *的目录。 – 2012-09-14 13:32:21