node.js:访问从其他文件导出的函数
node.js: access exported function from other file
我有以下代码:
// jira.js
var exports = module.exports = {};
module.exports = function () {
var exported = {};
..
exported.myMethod= function (bugId, done) {
..
}
..
return exported;
};
我想使用同一目录中其他文件bugs.js的myMthod函数:
var exports = module.exports = {};
var jira = require('./jira');
module.exports = function () {
var exported = {};
..
exported.secondMethod= function (bugId, done) {
jira.myMethod(...) {
}
..
}
..
return exported;
};
当我试图从bugs.js访问myMthod时,我会得到"undefined"。在调用jira.myMHod()之上执行console.log(jira)jyst时,我看到整个js文件都被注销了。
我该怎么做?
请告知,
谢谢!
由于您在jira中的module.exports是一个函数,您需要执行它才能获得返回值(您可以这样要求它:var jira = require('./jira')();
,它将返回导出的函数)。
但在我看来,这是多余的。我更喜欢这种语法:
// jira.js
function myMethod (bugId, done) {
..
}
..
return {
myMethod : myMethod
};
这样做的目的是,当您需要jira时,它将运行到代码中(在本例中,定义函数),并返回
当您需要一个模块时,require(...)
的结果就是该模块中分配给module.exports
的结果。在这种情况下,您正在分配一个函数,该函数使用所需的方法返回对象。
因此,要么将其用作:
var jira = require('./jira')();
jira.myMethod();
或者将jira.js更改为类似的内容
var exports = module.exports = {};
exports.myMethod = function (bugId, done) {
..
}
这简化为将导出的对象设置为变量,然后将module.exports设置为该变量。然后在导入时,只需要该文件并将导入的文件用作普通对象。
导出:
// jira.js
var jira = {};
...
jira.myMethod = function (bugId, done) {
...
}
...
module.exports = jira;
访问:
//bugs.js
var jira = require('./jira');
var bugs = {};
..
bugs.secondMethod= function (bugId, done) {
jira.myMethod(...);
..
}
..
相关文章:
- 通过Ajax将JavaScript函数传递给PHP文件
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 从HTML调用typescript文件中的函数
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 为什么spyOn"停止函数“”的所有执行;Jasmine(要求澄清Jasmine 2.2间谍文件)
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- 我可以将函数导入到typescript类文件中吗
- 如何调用extern.js文件中的函数
- 外部链接的Javascript文件赢得't执行,但函数有效
- 使用drupal中自定义javascript文件中的一个函数
- 将javascript变量从一个函数/文件传递到另一个
- 导入iPython自定义小部件函数(文件结构?)
- Wordpress-自定义页面包括第二个导致函数文件问题的自定义页面
- 调用外部js函数文件
- 如何快速识别被调用的Javascript函数文件
- 如何获得包含javascript函数文件的相对路径
- rails链接函数文件下载
- 如何将函数/文件导入到react native应用程序中?