Javascript 如何为每页生成一个随机数?

Javascript 如何为每页生成一个随机数?,javascript,node.js,express,Javascript,Node.js,Express,我正在使用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 genR

我正在使用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. 
  });
});
实际上有两个问题:

  • 如何为每个客户生成一个号码
  • 我如何确定每个客户的电话号码不同?我是否需要为当前打开的会话及其编号创建一个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++ 
      });
    });
    

    对于唯一的随机数,您还可以从用户处获得帮助。。他可以输入一些随机的笔划,然后您可以修改它们/添加/减去某些内容并发送到服务器

    您肯定不能用
    Math.random()
    确定。我认为,打同一个数字的几率是十分之一,但仍然<代码>:)它需要是随机的吗?如果在用户到来时以递增方式为其分配数字,然后在选择用户的实现中随机分配数字,则至少可以避免一个问题。@ŠimeVidas几率(在本例中)为1:90000,因为OP使用的是5位ID。意味着这不是一个面向大量用户的应用程序,也不是为了让ID安全或不可请求。Richard,你可能会发现这是一个非常有趣的页面:关于坚持这一点的明显问题:将此值存储在cookie中是否有效?如果你说明此数字的用途,可能会有所帮助。好的建议-不要使事情过于复杂:)谢谢你的帮助。