我有一個文件獲取一些其他的文件:改變當前文件夾中的Node.js
start.js
require("./users");
但users.js文件不在當前文件夾中,但在模型/。
我希望能夠運行:
node start.js model
,它會認爲./是/同型號的start.js。
我該怎麼做?
我有一個文件獲取一些其他的文件:改變當前文件夾中的Node.js
require("./users");
但users.js文件不在當前文件夾中,但在模型/。
我希望能夠運行:
node start.js model
,它會認爲./是/同型號的start.js。
我該怎麼做?
您需要做的就是讓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
您可以添加./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");
?
這很愚蠢,不會以任何方式鼓勵向路徑添加內容,而且他不想使用`model`前綴。使用'index.js`方法是這樣做的正常方式,NPM以這種方式包裝所有已安裝的模塊。 – 2010-12-02 15:47:03