未捕获(承诺)错误:请求失败,状态码为500
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未捕获(承诺)错误:请求失败,状态码为500相关的知识,希望对你有一定的参考价值。
我在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
});
}
答案
findById
将id
作为参数而不是对象。您需要回调才能访问数据。
User.findById(user_id, (err, user) => {
res.send({
user: user
});
})
以上是关于未捕获(承诺)错误:请求失败,状态码为500的主要内容,如果未能解决你的问题,请参考以下文章
405 - 未捕获(承诺中)错误:请求失败,状态码为 405