2010-12-02 72 views
1

我有一個文件獲取一些其他的文件:改變當前文件夾中的Node.js

start.js

require("./users"); 

但users.js文件不在當前文件夾中,但在模型/。

我希望能夠運行:

node start.js model 

,它會認爲./是/同型號的start.js。

我該怎麼做?

回答

2

您需要做的就是讓Node.js將文件夾model識別爲模塊。

爲了做到這一點,您需要在model文件夾中放置一個名爲index.js的文件。

// model/index.js 
exports.users = require('./users'); // model/users.js 
exports.posts = require('./posts'); // model/posts.js 
// etc. 

現在你可以導入model模塊和訪問它的出口:

var models = require('./model'); 
models.users.create(); // some function exported in model/users.js 
models.posts.list(); // this was exported in model/posts.js 
0

您可以添加./model DIR到require.paths陣列:

require.paths.unshift("./model"); 
var 
    users = require("users"), // It works! 
    posts = require("posts"); 

但我想問你:爲什麼你需要這個而不是使用

var 
    users = require("./model/users"), // It works! 
    posts = require("./model/posts"); 

+0

這很愚蠢,不會以任何方式鼓勵向路徑添加內容,而且他不想使用`model`前綴。使用'index.js`方法是這樣做的正常方式,NPM以這種方式包裝所有已安裝的模塊。 – 2010-12-02 15:47:03

相關問題