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
。