【发布时间】:2015-01-17 06:34:54
【问题描述】:
在 Node.js 中,当你这样做时
var otherscript = require('otherscript');
它根据需要运行脚本
我想知道是否有一种方法可以在不运行脚本的情况下“要求”脚本,以便您以后可以在需要时运行它。
有什么理由不这样做吗?
【问题讨论】:
在 Node.js 中,当你这样做时
var otherscript = require('otherscript');
它根据需要运行脚本
我想知道是否有一种方法可以在不运行脚本的情况下“要求”脚本,以便您以后可以在需要时运行它。
有什么理由不这样做吗?
【问题讨论】:
如果您可以编辑“其他脚本”(没有其他人正在使用该脚本),那么您可以简单地将整个代码包含在一个函数中并将其添加到导出中。 示例:
其他脚本:
module.exports = function(){
//original code goes here
};
然后用作:
var otherscript = require('otherscript');
var obj = otherscript();
【讨论】:
当您需要一个文件或模块时,该文件/模块的返回被缓存。换句话说,它实际上只执行一次,随后对该文件/模块的 require() 调用将只返回对完全相同对象的引用。
一个常见的例子是 Mongoose 包,其中调用 require('mongoose') 将返回一个 mongoose 实例,您可以在该实例上调用 connect() 来连接数据库。在程序的不同部分再次调用 require('mongoose') 将返回具有相同数据库连接的相同实例。
【讨论】:
otherscript = require('otherscript'); object = otherscript(); object2 = otherscript();