繁体   English   中英

将功能添加到Node.js中的外部模块

[英]Add function to external module in nodejs

我需要main.js(正在运行的脚本)中的一个函数在模块范围内进行识别:

Modules.js:

function x(){
     functionNeeded();
}

module.export.x = x;

Main.js

var m = require("modules.js");

function functionNeeded(){
     //function needed to call
}

//m.x() is called successfully
//but fails because functionNeeded is not defined (check modules.js)
//with m.functionNeeded = functionNeeded before calling m.x() it also fails.

有人对如何实现有任何想法吗,这样我就可以将main.js的功能分布到多个模块中,而无需复制它或将其分布到模块中?

您可以通过将函数作为参数传递给模块:

Module.js:

function x(functionNeeded){
     functionNeeded();
}

module.export.x = x;

Main.js

var m = require("modules.js");

function functionNeeded(){
     //function needed to call
}

m.x(functionNeeded)

我真的不推荐这样 ,但是您确实可以在节点中使用global变量:

global.functionNeeded = function () {
};

...但:

  • 您必须先确保初始化运行,然后再引用该函数。
  • 这使您的代码难以推理; 尚不清楚该函数来自何处或何时可用。

这是更好的 ,只是require你的每一个功能依赖于它模块中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM