我在Node.js中使用了index.js文件和check.js文件。如果我的数据库中的某些值发生了变化,我会使用check.js检查每500毫秒。如果是这样,变量currentInput的值会发生变化。我想在index.js中使用这个变量currentInput,这样我得到它的当前值。我尝试过搜索,但我发现的解决方案并没有给我当前的价值。
在check.js中:
var currentInput;
.
.
.
var check = function(){
pool.query('SELECT someValue FROM table WHERE id=1',function(err,rows){
if(err) throw err;
var newInput = rows[0].someValue;
if(currentInput!=newInput){
currentInput=newInput;
}
console.log('Current value:', currentInput);
});
setTimeout(check, 500);
}
在index.js中,我想使用它:
var x = function(currentInput);
答案 0 :(得分:0)
您可以将您的功能导出为模块。然后加载它并从index.js调用。
check.js
exports.check = function() {
pool.query('SELECT someValue FROM table WHERE id=1',function(err,rows){
if(err) throw err;
var newInput = rows[0].someValue;
if(currentInput!=newInput){
currentInput=newInput;
}
return currentInput);
});
};
index.js
var check = require("./path/to/check.js");
setTimeout(function(){
var x = check.check;
}, 500);
答案 1 :(得分:0)
您可以使用GLOBAL变量。 GLOBAL变量是(是的,你是对的)全局变量。
例如:
//set the variable
global.currentInput = newInput;
// OR
global['currentInput'] = newInput;
//get the value
var x = global.currentInput;
// OR
var x = global['currentInput'];
请注意,这可能不是最有效的方法,人们根本不喜欢这种方式(https://stackoverflow.com/a/32483803/4413576)
要在不同文件中使用全局变量,它们必须“相互连接”。
// index.js
require('./check.js')