【发布时间】:2018-05-19 15:05:32
【问题描述】:
我正在尝试创建全局 const 变量,我想知道这是否是好方法?
const sqlite3 = require('sqlite3')
Object.defineProperty(global, "db", {
value: new sqlite3.Database(__dirname + '/database.db')
})
【问题讨论】:
我正在尝试创建全局 const 变量,我想知道这是否是好方法?
const sqlite3 = require('sqlite3')
Object.defineProperty(global, "db", {
value: new sqlite3.Database(__dirname + '/database.db')
})
【问题讨论】:
“不要使用全局变量!如果你开始用多个进程运行你的应用程序,你会被搞砸的。”
为了使用全局可访问的变量,您应该使用模块。
例如:
在一个名为db.js的文件中
const sqlite3 = require('sqlite3');
exports.current = new sqlite3.Database(__dirname + '/database.db');
使用它:
const db = require('./db.js'); // instanciated only once
db.current.all("SELECT * FROM playlists", [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
console.log(row.name);
});
});
...
参考另一个相同的答案 How to use global variable in node.js?
【讨论】: