如何为每个页面生成一个随机数字?
我使用node.js和expression,我想在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. }); });
其实有两个问题:
- 我怎样才能为每个客户端生成一个号码?
- 我怎么能确定每个客户的号码是不同的? 我是否需要创build一个当前打开的会话及其号码的Redis存储?
感谢您帮助初学者:)
你的代码适合我,用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++ }); });
对于唯一的随机数字,你也可以从你的用户的帮助..他可以input一些随机键击,然后你可以修改它们/添加/减去一些东西,并发送到服务器