使用下面的代碼,我得到
{ test1: 'aaa', test2: 'bbb' }
這就是我想要的。IE。能夠在t2.js和之間有一個全域變數t3.js。
在這個 PoC 中t3()只被呼叫一次,但在實際情況下,if 將是 ~100 個t3()永遠不會結束的實體,因為它們在無限回圈中收集資料。t2.js不需要修改c。
問題
是否可能相同,但沒有第三個檔案(t1.js在這種情況下)?
t1.js
module.exports = {};
t2.js
const express = require('express');
const app = express();
let c = require('./t1');
const t3 = require('./t3');
c.test1 = "aaa";
t3();
console.log(c);
app.get('/test.json', (req, res) => {
res.send(JSON.stringify(c, null, 2));
});
app.listen(1900, () => {});
t3.js
let c = require('./t1');
module.exports = () => {
c.test2 = "bbb";
};
uj5u.com熱心網友回復:
看起來很簡單,可以在入口點創建一個物件,然后傳遞它:
const express = require('express');
const app = express();
const t3 = require('./t3');
const records = {
test1: "aaa",
};
t3(records);
console.log(records);
app.get('/test.json', (req, res) => {
res.send(JSON.stringify(records, null, 2));
});
app.listen(1900, () => {});
module.exports = (records) => {
records.test2 = "bbb";
};
請注意,無論是在這段代碼中,還是在您的原始代碼中,都沒有使用全域變數(我想,除了 for require)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/380241.html
