我是Node.js世界的新手
根据这个主题: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模块的badRequest
文件中的utils.js
函数。 / p>
同一个文件中的md5
函数怎么样?
我是否必须在myresources.js
开始时使用这个恶意电话来使用它们?:
var connectUtils =
require('../node_modules/express/node_modules/connect/lib/utils.js');
或是否有更优雅的解决方案(即使是app.js
)?
提前感谢您的帮助!
答案 0 :(得分:2)
如果您想直接访问connect
,建议您安装connect
作为项目的依赖项,以及express
。然后你可以var utils = require('connect').utils
。
答案 1 :(得分:2)
我提出的唯一更优雅的方法是(假设express位于你的根“node_modules”文件夹中):
require("express/node_modules/connect/lib/utils");
节点安装在Windows上,节点版本为0.8.2
以及一些额外信息:
这样你就不需要知道你在路径中的位置并被迫使用相对路径(./或../),这可以在任何文件嵌套级别上完成。
我将所有自定义模块放在根“node_modules”文件夹中(我命名为我的文件夹“custom_modules”)并在任何嵌套级别以这种方式调用它们:
require("custom_modules/mymodule/something")