每當我點擊需要驗證的路由時,我在控制檯中收到警告消息。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()函數? –