假设我有一个看起来像这样的文件:
var random_nr = Math.floor(Math.random()*array.length);
var x = array[random_nr];
// do some things
exports.random_array_member = x
现在,如果我在另一个文件中'需要'这个,只要我不重新启动服务器,我就会得到相同的结果,大概是因为缓存?
运行此代码并获取随机值的最佳方法是什么,而不将代码包含在我的主文件中?
答案 0 :(得分:2)
您显示的代码仅执行一次。然后将该代码的结果存储为变量,准备导出到任何需要它的文件。
相反,你需要"打电话"您需要随机变量时的代码:
exports.random_array_member = function(){
var random_nr = Math.floor(Math.random()*array.length);
return array[random_nr];
}
现在,您无需访问exports.random_array_member
,而是在其他文件中调用exports.random_array_member()
。
答案 1 :(得分:1)
让我们玩getters
<强> random.js 强>
var array = [1, 2, 3, 4, 5];
module.exports = {
get random_array_member() {
return array[Math.floor(Math.random()*array.length)]
}
}
<强> consumer.js 强>
var r = require('./random')
console.log(r.random_array_member)
console.log(r.random_array_member)
console.log(r.random_array_member)