在Node.js中更改当前文件夹

我有一个文件获取一些其他文件:

start.js

require("./users"); 

但是users.js文件不在当前文件夹中,而是在model /中。

我想能够运行:

 node start.js model 

它会假设./与start.js中的model /相同。

我怎么做?

所有你需要做的就是让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");