Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改Node.js中的当前文件夹_Javascript_Node.js - Fatal编程技术网

Javascript 更改Node.js中的当前文件夹

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

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

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'); //  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");