route1.js代码:
var express = require('express');
var app = express();
var router = express.Router();
var module1 = require('../modules/module1.js'); // custom module
var globals = {
a : 'A',
b : 'B',
c : 'C'
};
router.post('/data', function(req, res){
var data = req.body.form_input;
// here we update the globals object with the data, mutate it or something
});
module.exports = {
router : router,
globals : globals
};
module1.js代码:
var route1 = require ('../routes/route1.js');
console.log(route1.globals); // not working!?
为什么即使我通过module.export在route1中导出了global,在module1中也不可用?
编辑:
当我需要时发生循环依赖:
var module1 = require('../ modules / module1.js');
然后在module1中,我需要:
var route1 = require('../routes/route1.js');
因此它从model1跳到route1,然后又跳到model1再跳到route1,依此类推。通过添加其他模块-globals.js并将其添加到module1并解决了route1的问题-感谢@Rashomon。
最佳答案
我认为您在这里有一个循环依赖。循环依赖关系很难管理,并且在多数情况下是体系结构设计不良的标志。
我建议您将globals
移至名为globals.js
的单个文件。
这里有一个循环依赖问题的最小示例:
https://codesandbox.io/s/damp-hill-94gdg?fontsize=14