node.js - 我可以用一个 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 再次导出所有内容,但我将重复工作。

谢谢!!

P.D:我正在 Windows 7 机器上使用 nodejs v0.611

最佳答案

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

此外,package.json 不会加载任何内容,并且根本不会与您的应用程序交互。它仅用于 npm

现在您不能一次需要多个模块。例如,如果 One.jsTwo.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();

关于node.js - 我可以用一个 require 语句加载多个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554241/

相关文章:

node.js - Discord.js 错误 : Error: FFmpeg/avconv not found! 即使已安装

node.js - bool 字段的 Mongoose 查询

javascript - 两个以上任务的嵌套回调

node.js - 使用 NodeJs Express 在 JavaScript 上推送通知

node.js - 如何在 Visual Studio Code (VS Code) 上调试用 Typescript 编写的 Express 应用程序

javascript - 如何知道何时收到所有 block

json - Node 包 - 是否可以在 package.json 中插入变量?

javascript - 监听服务器时,提示服务器未定义。还有其他方法可以监听服务器吗?

node.js - 错误 :/lib/x86_64-linux-gnu/libm. so.6:版本 `GLIBC_2.27'

javascript - Express 服务器 404ing 所有来自索引的请求