In ExpressJS possiamo creare un identificativo per ciascuna route.

Possiamo definire la seguente funzione:


'use strict';

const generateId = () => {
    let timestamp = (new Date().getTime() / 1000 | 0).toString(16);
    let template = '%'.repeat(16);
    return timestamp + template.replace(/[%]/g, () => {
        return (Math.random() * 16 | 0).toString(16);
    }).toLowerCase();
};

module.exports = generateId;

Quindi la usiamo come middleware:


'use strict';

const id = require('./lib/id');
const app = require('express')();

app.use((req, res, next) => {
    req.id = id();
    next();
});

app.listen(3000);