Javascript 更改Node.js中的当前文件夹
我有一个文件正在获取其他一些文件: start.js 但是users.js文件不在当前文件夹中,而是在model/中 我希望能够运行:Javascript 更改Node.js中的当前文件夹,javascript,node.js,Javascript,Node.js,我有一个文件正在获取其他一些文件: start.js 但是users.js文件不在当前文件夹中,而是在model/中 我希望能够运行: node start.js model 并且它会假设./与start.js中的model/相同 我该怎么做呢?您需要做的就是让Node.js将文件夹model识别为一个模块 为此,需要将名为index.js的文件放在model文件夹中 // model/index.js exports.users = require('./users'); // mode
node start.js model
并且它会假设./与start.js中的model/相同
我该怎么做呢?您需要做的就是让Node.js将文件夹
model
识别为一个模块
为此,需要将名为index.js
的文件放在model
文件夹中
// model/index.js
exports.users = require('./users'); // model/users.js
exports.posts = require('./posts'); // model/posts.js
// etc.
现在,您可以导入模型
模块并访问其导出:
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");
?那太愚蠢了,在路径中添加东西是不受鼓励的,他也不想使用
模型
前缀。使用index.js
方法是正常的做法,NPM以这种方式包装所有已安装的模块。我同意添加路径是不好的做法。但就我个人而言,我会使用/model/users
提高可读性如果他想分发一个包含多个子模块的整个库,那么index.js
方法仍然是最好的,也提供了更好的黑盒视图。
var
users = require("./model/users"), // It works!
posts = require("./model/posts");