从 node.js 中的模块获取 'random' 值
Getting a 'random' value from a module in node.js
假设我有一个如下所示的文件:
var random_nr = Math.floor(Math.random()*array.length);
var x = array[random_nr];
// do some things
exports.random_array_member = x
现在,如果我 'require' 在另一个文件中,只要我不重新启动服务器,我总是会得到相同的结果,大概是因为缓存?
运行 此代码并获得随机值的最佳方法是什么,同时不将代码包含到我的主文件中?
您显示的代码只执行了一次。然后将该代码的结果存储为一个变量,随时可以导出到任何需要它的文件。
相反,您需要 "call" 代码,此时您需要一个随机变量:
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
。
让我们玩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)
假设我有一个如下所示的文件:
var random_nr = Math.floor(Math.random()*array.length);
var x = array[random_nr];
// do some things
exports.random_array_member = x
现在,如果我 'require' 在另一个文件中,只要我不重新启动服务器,我总是会得到相同的结果,大概是因为缓存?
运行 此代码并获得随机值的最佳方法是什么,同时不将代码包含到我的主文件中?
您显示的代码只执行了一次。然后将该代码的结果存储为一个变量,随时可以导出到任何需要它的文件。
相反,您需要 "call" 代码,此时您需要一个随机变量:
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
。
让我们玩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)