【问题标题】:Node.js requiring a script but not running itNode.js 需要脚本但不运行它
【发布时间】:2015-01-17 06:34:54
【问题描述】:

在 Node.js 中,当你这样做时

var otherscript = require('otherscript');

它根据需要运行脚本

我想知道是否有一种方法可以在不运行脚本的情况下“要求”脚本,以便您以后可以在需要时运行它。

有什么理由不这样做吗?

【问题讨论】:

    标签: node.js require


    【解决方案1】:

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

    其他脚本:

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

    然后用作:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 呵呵,这比我想象的还要混乱
      • @AlexMills 你总是可以让它成为一个构造函数。 otherscript = require('otherscript'); object = otherscript(); object2 = otherscript();
      • 我不得不说,让脚本在第一个要求上运行而不在后续要求上运行的行为根本就是不遵循最小意外原则
      猜你喜欢
      • 2011-09-23
      • 2019-10-19
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多