I'm using node.js and express, and I'd like to generate a random five-figure number in app.js and return it to the client.
I'd like to do this on the server rather than the client, because I want to be certain that the number is different for every user who is currently connected.
Here's my current (broken) code from 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.
});
});
There are actually two problems:
Thanks for helping out a beginner :)
Your code works for me, with index.jade:
h1 #{random_id}
However, as written it generates a random # for each page, not just each client. Some sort of backing data store would be needed to permanently guarantee each client has a unique #, but since you're only using 5-digits (90K possible IDs), you're clearly not concerned with this being unguessable. And if you only care about this in the context of a single node process, why not just use an auto incrementing value?
var clientId = 1;
app.get('/', function(req, res){
res.render('index', {
title: 'Hello world',
random_id: clientId++
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With