Node.js需要工作但属性未定义

时间:2018-08-28 11:45:00

标签: node.js

问题:

我包含一个.js文件,其中需要访问这些功能。

我需要的文件如下所示:

MyFile = {

f1: function(value) {
    // some code
},

f2: function(value) {
    // some code
}, 

// and so one....

代码扼杀了我如何调用函数f1:

expr = MyFile.f1('Hello');

对此有趣的是,在我看来,它不起作用。需求部分工作正常。我测试了这是否是问题所在,但不是。具有相同代码的我的同事可以在没有问题的情况下运行它,但是我收到以下消息:

  

ReferenceError:未定义MyFile。

有人可以向我解释什么可能导致此问题吗?

解决方案:

我现在使用的是require,而不是module.expoerts,它工作正常。

在这里您可以看到我的化妆品:

MyFile = {更改为module.exports = {

require('./MyFile.js');分配给某个属性,例如var MyFile = require('./MyFile.js');

3 个答案:

答案 0 :(得分:1)

好像您在“严格模式”下运行代码,而您的同事却没有,因此他没有得到参考错误。

答案 1 :(得分:0)

MyFile = {

f1: function(value) {
    // some code
},

f2: function(value) {
    // some code
}, 

// and so one....
module.exports = MyFile;

const MyFile = require('./MyFile.js');

答案 2 :(得分:0)

对要导出的内容进行编码,例如

   exports.MyFile = {

    f1: function (value) {
        // some code
    },

    f2: function (value) {
        // some code
    }
}

将其另存为 moduleFile.js

然后这样称呼

let obj= require('./moduleFile');
// Use Object MyFile from moduleFile like this

obj.MyFile.f1('Hello');
  • 注释1 :请勿在任何地方都使用诸如 myfile 之类的易混淆名称。

  • 注释2 :导入时不要 .js 扩展名。

  • 注释3 :您也可以从那里导出功能而无需使用对象,但是通常不建议这样做。