【问题标题】:Uncaught (in promise) Error: Request failed with status code 500未捕获(承诺中)错误:请求失败,状态码为 500
【发布时间】:2018-08-09 11:33:45
【问题描述】:

我在用户表中有数据,但我无法根据他们的 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】:

    findByIdid 作为参数,而不是对象。你需要一个 回调以访问数据。

    User.findById(user_id, (err, user) => {
      res.send({
        user: user
      });
    })
    

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 1970-01-01
      • 2019-08-03
      • 2020-12-01
      • 2020-07-30
      • 2018-06-10
      • 1970-01-01
      • 2022-01-26
      • 2018-09-25
      相关资源
      最近更新 更多