node.js – Nodejs, express and mongodb erro

Basicamente, estou fazendo uma route da minha API, para trocar um token do usuário, porém, este só pode trocar entre períodos de 14 dias.

O código da route está assim >

const express = require('express');
const ms = require("parse-ms");

const authMiddleware = require('../middlewares/auth');
const router = express.Router();

const User = require('../../database/Schemas/User');

router.use(authMiddleware);


router.post('/token?:token', (req, res) => {
    let token = req.params.token;

    if(!token) {
        return res.status(200).send({ erro: 'Bad request'});
    }
    User.findOne({ id: req.userID }, (err, user) => {
        const cooldown = 1.21e+6;
        const waitTime = user.waitTime;

        if(!user.token) {
            return res.status(400).send({ erro: "You don't have a token."})
        }

        if(waitTime !== null && cooldown - (Date.now() - waitTime) > 0) {
            let time = ms(cooldown - (Date.now() - daily) > 0);
            let days = time.days;
            let hours = time.hours;
            let minutes = time.minutes;
            let seconds = time.seconds; 
            return res.status(400).send({erro: `Você deve esperar ${days <= 1 ? `1 dia` : `${days} dias`}, ${hours <= 1 ? `1 hora` : `${hours} horas`}, ${minutes <= 1 ? `1 minuto` : `${minutes} minutos`} e ${seconds} segundos para trocar seu token novamente.`})
        } else {
            try {
                const result = User.findOneAndUpdate({ id: req.userData.id}, {$set: {token: token, waitTime: cooldown + Date.now()}}, {new: true})
                return res.status(200).send({ id: req.userData.id, token: result.token})
            } catch (error) {
                return res.status(400).send({ error: 'Error changing token'})
            }
        };
    })
})

module.exports = router;

Já o codigo do meu auth middleware, usando JWT, está assim >

const jwt = require('jsonwebtoken');
const authConfig = require('../../config/auth.json');

module.exports = (req, res, next) => {
 const authHeader = req.headers.authorization;

 if (!authHeader)
 return res.status(401).send({ error: 'No token provided' });

 const parts = authHeader.split(' ');

 if (!(parts.length === 2))
 return res.status(401).send({ error: 'Token error' });

 const ( scheme, token ) = parts;

 if (!/Bearer$/i.test(scheme))
 return res.status(401).send({ error: 'Token malformatted' });

jwt.verify(token, authConfig.secret, (err, decoded) => {
    if (err) return res.status(401).send({ error: 'Token invalid' });
    req.userData = decoded;
    return next();
});

};

O mais engraçado é que ele não retorna erro, apenas o ID do usuário em JSON e não muda nada na DB, e passa direto pela verificação se há um token.

Se alguém puder ajudar, grato!