node.js - 如何在 Node.js require() 中使用另一个模块中的一个模块功能

标签 node.js module require

我想在另一个模块中使用一个模块功能

文件main.js

var _ = require("./underscore.js");
var foo = require("./bar.js");
foo.publish(...);

文件 bar.js

(function(e) {
    var array = [...];
    e.publish = function(t, args) {
        _.each(array, function(...) {...});
    });
})(exports);

我尝试了几种变体,但我不确定解决此错误的最佳方法:

ReferenceError: _ is not defined

最佳答案

是的,对于您的示例,您应该在需要该变量的每个模块中使用。

var _ = require("./underscore.js");

但是,如果您需要在多个模块之间传输一个对象实例,您可以使用process对象使其成为全局对象。但这是糟糕的做法。

process._ = require("./underscore.js");

在模块之间传递对象实例的好方法是将它们作为函数参数传递,但是您需要更改 bar.js 以返回工厂函数,而不是对象本身。

module.exports = function(_) {
   var e = {};
   var array = [...];
   e.publish = function(t, args) {
      _.each(array, function(...) {...});
   });
   return e;
}

在 main.js 中:

var _ = require("./underscore.js");
var foo = require("./bar.js")(_);
foo.publish(...);

我希望你明白了。

关于node.js - 如何在 Node.js require() 中使用另一个模块中的一个模块功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13039825/

相关文章:

maven - 使用 Maven 和模块缓慢构建 Appengine

javascript - React Native require(image) 返回数字

ruby-on-rails-3 - Rails 3 库直到需要才加载

javascript - 快速提供静态文件和路由

node.js - joi模块中定义整数变量的最小和最大长度的函数是什么

javascript - 销毁 Node 中的请求

powershell - 无法在 powershell 中安装 TLS 模块

php - 我如何将寻呼机提供给 drupal_add_tabledrag

node.js - 从 MongoDB 2.6 迁移到 3.2。我们可以跳过3.0获取数据吗?

javascript - 使用 r.js 来优化 require.js 文件