I'm looking for a professional technique to generate unique URL addresses. I created a node.js server that should give out these URLs to accessing clients. How can I provide the URLs?
// user is connecting to www.privatebox.de
// server serves index.html with unique ID
// e.g. www.privatebox.de/8yfuzyzzm7
For a robust solution, I would consider using node-uuid to generate UUIDs.
Install the package with NPM:
npm install node-uuid
Based on the sample code from the GitHub project page:
var uuid = require('node-uuid');
// Generate a v1 (time-based) id
var timeBasedID = uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
// Generate a v4 (random) id
var randomID = uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
var url = 'www.privatebox.de/' + randomID; // or + timeBasedID
If you're looking for a shorter, more url-friendly unique ID, then ShortId might be a decent option for you, although the chance of collisions will be higher. ShortId will generate ids like this:
ShortId.generate() -> 'PPBqWA9'
Finally, I suggest you look at this SO question for generating unique ids in javascript.
Generate a random string, and store it in your database as a key to whatever information needs to go with it.
I like this method of generating random little strings: var key = Math.random().toString(36).substring(7);.
Then give out the url 'www.privatebox.de/' + key.