模块导出说两个js文件之间未定义

时间:2018-10-09 10:27:42

标签: javascript

我仍然是javascript的初学者,所以很抱歉,如果我做傻事。我有两个文件,如下所示

文件test.js

var test2=require("./test2");

const Type='TYPE';
const Brand='BRAND';

module.exports={    
Type,Brand
}

function see(){
console.log(test2.details);
}
see()

文件test2.js

var test=require("./test.js")
const details="for testing";

module.exports={
details
}

function doTest(){
console.log(test.Type)
}

doTest()

它给了我以下未定义的输出。

enter image description here

为什么给出未定义的输出?

2 个答案:

答案 0 :(得分:1)

您使用的设计模式无法维护,更不正确。如@Sergii Vorobei所建议,删除循环依赖项。循环依赖是指两个或多个文件相互导入导致由于递归而导致意外错误的情况。

要回答您的问题,

// test.js

const Type = 'TYPE';
const Brand = 'BRAND';

module.exports={    
   Type,
   Brand
}

// test2.js

var test = require("./test.js")

function doTest() {
   console.log(test.Type, test.Brand)
}

doTest()

使您的代码保持简单。

答案 1 :(得分:0)

您可以简单地使用:

var {type, brand} = require("./test.js")
//do whatever with type, brand