Node.js 需要脚本但不需要 运行

Node.js requiring a script but not running it

在Node.js,当你

var otherscript = require('otherscript');

它运行是根据要求

编写的脚本

我想知道是否有一种方法 "require" 无需 运行 脚本,这样您以后就可以 运行 它。

有什么理由不这样做吗?

当您需要一个文件或模块时,file/module 的 return 会被缓存。换句话说,它实际上只执行一次,随后对 file/module 的 require() 的调用只会 return 对完全相同对象的引用。

一个常见的例子是 Mongoose 包,其中调用 require('mongoose') 将 return 一个 mongoose 实例,您可以在其上调用 connect() 来连接到数据库。在程序的不同部分再次调用 require('mongoose') 将 return 具有相同数据库连接的相同实例可用。

如果您可以编辑 'otherscript'(没有其他人在使用该脚本),那么您可以简单地将整个代码包含在一个函数中并将其添加到导出中。 示例:

其他脚本:

module.exports = function(){
  //original code goes here
};

然后用作:

var otherscript = require('otherscript');
var obj = otherscript();