一尘不染

我可以使用一个require语句加载多个文件吗?

node.js

也许这个问题有点愚蠢,但是可以用一个require语句加载多个.js文件吗?像这样:

var mylib = require('./lib/mylibfiles');

并使用:

mylib.foo(); //return "hello from one"

mylib.bar(): //return "hello from two"

在文件夹mylibfiles中将有两个文件:

One.js

exports.foo= function(){return "hello from one";}

Two.js

exports.bar= function(){return "hello from two";}

我当时在想将package.json放到文件夹中,以说加载所有文件,但是我不知道如何。我在想的另一个方法是让index.js再次导出所有内容,但我将重复工作。

谢谢!!

PD:我正在Windows 7机器上使用Node.js v0.611


阅读 487

收藏
2020-07-07

共1个答案

一尘不染

首先使用require不会重复任何东西。它加载模块并对其进行 缓存
,因此require再次调用将从内存中获取它(因此您可以在不与模块源代码交互的情况下即时修改模块-
有时这是理想的,例如,当您想在模块内部存储数据库连接时)。

package.json不会加载任何内容,也不会与您的应用进行交互。仅用于npm

现在,您不能一次需要多个模块。例如将发生,如果两者是什么One.js,并Two.js具有相同的名称定义的函数?还有更多的问题。

但是您可以做的是编写附加文件,modules.js并显示以下内容

module.exports = {
   one : require('./one.js'),
   two : require('./two.js'),
   /* some other modules you want */
}

然后您可以简单地使用

var modules = require('./modules.js');
modules.one.foo();
modules.two.bar();
2020-07-07