每当我点击需要验证的路由时,我在控制台中收到警告消息。Promise已创建,但未从中返回。 Knex /书架
(节点:940)警告:承诺在处理程序在创建XXXXXX \程序\ CONFIG \ passport.js:15:19,但没有从它返回,见http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it 在.fetch(XXXXXX \ node_modules \蓝鸟\ JS \发布\ method.js:13:13)
我已配置的护照是这样的:
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const secret = process.env.SECRET;
var opts = {}
function passportConfig(db, passport) {
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
opts.secretOrKey = secret;
passport.use(new JwtStrategy(opts, payloadCallback.bind(null, db)));
}
function payloadCallback(db, payload, done) {
new db.User({id: payload}).fetch()
.then(response => response.toJSON())
.then(user => done(null, user))
.catch(err => console.log(err));
}
module.exports = passportConfig;
任何帮助,将不胜感激。
'payloadCallback'不返回任何 –
@JaromandaX我认为,当我使用。那么(用户=>完成(NULL,用户)),这将是相同的话。那么(功能(用户) {return done(null,user)})。我对它进行了测试,以确保我仍然得到相同的警告。即使我使用“return new db.User .....” –
哪里是.fetch()函数? –