未捕获(承诺)错误:请求失败,状态码为500

问题描述 投票:0回答:1

我在User表中有数据,但我找不到基于他们的id - User.findById('kjsdfjsidjisj')的用户。在fetchuser函数下,如果我res.send({ user: user_id })它在解码JWT令牌后正确地以字符串格式发回id。但是,当我尝试user = User.findById({ user_id }),并发送用户它给我一个错误。也许我在查询中遗漏了一些东西?

如果这是一个,我不知道如何完成这个承诺。


const User = require('../models/User');
const jwt = require('jwt-simple');
const config = require('../config/dev');

var mongoose = require('mongoose');

function tokenForUser(user) {
    const timestamp = new Date().getTime();
    return jwt.encode({ 
        sub: user.id,
        admin: user.admin
    }, config.secret);
}

exports.fetchuser = function (req, res, next) {
    const token = req.body.token;
    const secret = config.secret;
    const decoded = jwt.decode(token, secret);

    const user_id = decoded.sub;

    const user = User.findById({ user_id })

    res.send({
        user: user
    });
}
node.js mongoose jwt mongoose-schema
1个回答
1
投票

findByIdid作为参数而不是对象。您需要回调才能访问数据。

User.findById(user_id, (err, user) => {
  res.send({
    user: user
  });
})
© www.soinside.com 2019 - 2024. All rights reserved.