#265·morgan

Adding a token named token causes all subsequent tokens to break.

Author: WadeDutchCreated Jul 27, 2022Updated Aug 17, 2026
Labelsbug

This works just fine:

javascript
var logger = require('morgan');
logger.token('ip', function (req, res) { return req.ip ? req.ip : "" });
logger.token('uuid', function (req, res) { return (req.token ? req.token.uuid : "") });
logger.token('token', function (req, res) { return (req.token ? req.token.token : "") });

This gives "TypeError: tokens.uuid is not a function" when called in the logger:

javascript
var logger = require('morgan');
logger.token('ip', function (req, res) { return req.ip ? req.ip : "" });
logger.token('token', function (req, res) { return (req.token ? req.token.token : "") });
logger.token('uuid', function (req, res) { return (req.token ? req.token.uuid : "") });