Connect和Express utils

我是Node.js的新手

根据这个话题: 什么是Node.js的Connect,Express和“中间件”?
我了解到Connect是Express的一部分

我在代码中挖了一下,发现了两个非常有趣的文件:

./myProject/node_modules/express/lib/utils.js 

和更好:

 ./myProject/node_modules/express/node_modules/connect/lib/utils.js 

这两个文件充满了有用的function,我想知道如何正确调用它们。

到目前为止,在./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的开始处放置这个丑陋的呼叫来使用它们吗?

 var connectUtils = require('../node_modules/express/node_modules/connect/lib/utils.js'); 

或者,有没有更优雅的解决scheme(即使是app.js )?

预先感谢您的帮助!

我想出来的唯一更优雅的方式是(假设expression式是在你的根“node_modules”文件夹内):

 require("express/node_modules/connect/lib/utils"); 

节点安装在windows,节点版本0.8.2上


和一些额外的信息:

这样你就不需要知道你在path中的什么位置,并被迫使用相对path(./或../),这可以在任何文件嵌套级别上完成。

我把我所有的自定义模块的根“node_modules”文件夹(我命名我的文件夹“custom_modules”),并在任何层次的嵌套调用它们:

 require("custom_modules/mymodule/something") 

如果你想直接访问connect ,我build议你安装connect作为你的项目的依赖,以及express 。 然后你可以var utils = require('connect').utils