[英]how to use global variable(sharable variables) in Node.js&Express
我有一個名為data.js
的文件,用於將數據保留為內存數據庫。
var express = require('express');
var app = express();
var aList;
var bList;
var cList;
module.exports = app;
而且我想在啟動服務器時初始化數據。 因此,我在app.js
實現了init()
...
var data = require('./data'); // data.js is located in the same folder.
app.set(...);
app.use(...);
...
init();
...
});
fun init(){
console.log("Hello!");
aList = getDumpDataList(10); // I also tried with 'data.aList = getDumpDataList(10);' but didn't work.
console.log(JSON.stringify(aList));
}
fun getDumpDataList(n){
var list;
... // for loop to generate random elements.
return list;
}
module.exports = app;
當我用console.log()
打印時, Hello!
被打印但aList
不被打印但undefined
我也想在routes
文件夾下的路由器中使用數據。
所以,我所做的是。
...
var data = require('./data');
route.get("/...", function(req, res, next){
console.log(JSON.stringify(aList));
...
});
但這也是undefined
。
我只是做一個簡單的測試服務器,每當我重新運行時就初始化數據。
如何在js文件之間共享變量?
您不導出這些變量:
const express = require('express');
const app = express();
let aList;
let bList;
let cList;
module.exports.app = app;
module.exports.aList = aList;
module.exports.bList = bList;
module.exports.cList = cList;
data.js
,而是將其放在app.js
。 data.js
初始值來初始化這些變量。 var
,而應使用let
和const
。 自節點6+( https://node.green/ )開始受支持。 我在代碼中替換了它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.