我正在使用node.js和express,我想在app.js中生成一个随机的五位数字并将其返回给客户端。
我想在服务器而不是客户端上执行此操作,因为我想确定每个当前连接的用户的数字是不同的。
这是我在app.js中的当前(损坏)代码:
// My first attempt - a function to generate a random number.
// But this returns the same number to every client.
function genRandNum() {
return Math.floor(Math.random() * 90000) + 10000;
}
// Routes
app.get('/', function(req, res){
res.render('index', {
title: 'Hello world',
random_id: genRandNum() // No good - not different for each user.
});
});
实际上有两个问题:
感谢您帮助初学者:)
答案 0 :(得分:2)
您的代码适用于我,使用index.jade:
h1 #{random_id}
然而,正如所写,它为每个页面生成一个随机#,而不仅仅是每个客户端。需要某种支持数据存储来永久保证每个客户端都有一个唯一的#,但由于你只使用5位数(90K可能的ID),你显然不关心这是不可思议的。如果您只关注单个节点进程的上下文,为什么不使用自动递增值呢?
var clientId = 1;
app.get('/', function(req, res){
res.render('index', {
title: 'Hello world',
random_id: clientId++
});
});
答案 1 :(得分:0)
对于唯一的随机数,您也可以从用户那里获得帮助..他可以输入一些随机击键,然后您可以修改它们/添加/减去某些内容并在服务器上发送