Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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/express.js中的导出?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何让文件继承node.js/express.js中的导出?

Javascript 如何让文件继承node.js/express.js中的导出?,javascript,node.js,express,Javascript,Node.js,Express,我的express.js应用程序中有一个文件夹,其中包含三个文件: // models/one.js exports.One = function() { return 'one'; } // models/two.js exports.Two = function() { return 'two'; } // models/three.js exports.Three = function() { return 'three'; } 我希望能够像这样使用它: var db = requi

我的express.js应用程序中有一个文件夹,其中包含三个文件:

// models/one.js
exports.One = function() { return 'one'; }

// models/two.js
exports.Two = function() { return 'two'; }

// models/three.js
exports.Three = function() { return 'three'; }
我希望能够像这样使用它:

var db = require('./models');
doSomething(db.One, db.Two, db.Three);
换句话说,我想将来自多个文件的导出分组到一个变量中

我知道默认情况下,require语句将查找models/index.js。是否可以在index.js中放入任何内容,使其能够继承目录中其他文件的导出,例如(非工作psuedocode):

想法?谢谢

有关解决方案,请参阅

或者您可以加载目录中的所有文件,例如

a.js:

exports.a = 1;
exports.b = 2;
b.js:

exports.a = 1;
exports.b = 2;
index.js:(这将需要同一目录中的所有
.js
文件,并将它们绑定到单个对象)

需要您将看到的目录

{ a: 1, b: 2 }
有关解决方案,请参阅

或者您可以加载目录中的所有文件,例如

a.js:

exports.a = 1;
exports.b = 2;
b.js:

exports.a = 1;
exports.b = 2;
index.js:(这将需要同一目录中的所有
.js
文件,并将它们绑定到单个对象)

需要您将看到的目录

{ a: 1, b: 2 }

请注意,由于您使用的是
readdirSync
,因此必须在服务器运行之前执行此操作boots@Raynos你能详细说明原因吗?阻塞IO块。您不会阻止正在运行的单线程服务器。可以使用阻塞IO以方便启动或用于实用程序脚本,但一旦服务器接受TCP/HTTP输入,一切都必须是非阻塞的。请注意,由于您使用的是
readdirSync
,因此必须在服务器启动之前执行boots@Raynos你能详细说明原因吗?阻塞IO块。您不会阻止正在运行的单线程服务器。为方便启动或实用程序脚本使用阻塞IO是可以接受的,但一旦服务器接受TCP/HTTP输入,一切都必须是非阻塞的。