2016-11-07 2 views
1

Ich erhalte immer eine Warnmeldung in meiner Konsole, wenn ich auf eine Route stoße, die eine Authentifizierung erfordert.Versprechen wurde erstellt, aber nicht zurückgegeben. Knex/Bookshelf

(node: 940) Hinweis: ein Versprechen, wurde in einem Handler erstellt bei xxxxxx \ app \ config \ passport.js: 15: 19, wurde aber nicht von ihr zurückkehrt, siehe http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it bei .fetch (xxxxxx \ node_modules \ drossel \ js \ release \ method.js: 13: 13)

ich Pass wie folgt konfiguriert haben:

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; 

Jede Hilfe würde geschätzt.

+0

'payloadCallback' nichts –

+0

@JaromandaX kehre ich dachte, dass wenn ich .then (user => fertig (null, Benutzer)), die gleich sagen .then (function (Benutzer) sein würde {return done (null, Benutzer)}). Ich habe es getestet, um sicher zu sein, und ich bekomme immer noch die gleiche Warnung. Auch wenn ich "return new db.User ....." verwende –

+0

wo ist die '.fetch()' Funktion? –

Antwort

1

Ich habe diese Warnung behoben, indem ich die zweite dann ersetzt und mit .asCallback abgefangen habe (fertig).

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()) 
    .asCallback(done); 
} 

module.exports = passportConfig; 
+0

Das löste das Problem auch für mich. Vielen Dank! Das war wirklich seltsam. – Lincoln

Verwandte Themen