我在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