Ich benutze NodeJS, PassportJS, MySQL und Sequalize (ORM für MySQL). Dieser Code stammt aus meiner Passport.JS-Datei. Wenn sich ein Nutzer auf meiner Website registriert, wenn der Benutzername oder die E-Mail-Adresse verwendet wird, erhalte ich einen Fehler. Wenn Benutzername und E-Mail nicht in der Datenbank gefunden werden können, wird ein neues Konto erstellt.Unbehandelte Ablehnung TypeError: Kann Eigenschaft 'Benutzername' von Null nicht lesen
Der Fehler Ich erhalte, wenn ich auf meiner Website registrieren ist ...
Unhandle Ablehnung Typeerror: kann Eigenschaft ‚username‘ von null bei null lesen. (/home/ubuntu/workspace/Authentication.1/config/passport/passport.js:50:16) bei tryCatcher (/home/ubuntu/workspace/Authentication.1/node_modules/sequelize/node_modules/bluebird/js/release /util.js:16:23) bei Promise._settlePromiseFromHandler (/home/ubuntu/workspace/Authentication.1/node_modules/sequelize/node_modules/bluebird/js/release/promise.js:512:31) bei Promise. _settlePromise (/home/ubuntu/workspace/Authentication.1/node_modules/sequelize/node_modules/bluebird/js/release/promise.js:569:18) bei Promise._settlePromise0 (/home/ubuntu/workspace/Authentication.1/ node_modules/sequelize/node_modules/bluebird/js/release/promise.js: 614: 10) bei Promise._settlePromises (/home/ubuntu/workspace/Authentication.1/node_modules/sequelize/node_modules/bluebird/js/release/promise .js: 693: 18) bei Async._drainQueu e (/home/ubuntu/workspace/Authentication.1/node_modules/sequelize/node_modules/bluebird/js/release/async.js:133:16) bei Async._drainQueues (/home/ubuntu/workspace/Authentication.1/ node_modules/sequelize/node_modules/drossel/js/release/async.js: 143: 10) bei Immediate.Async.drainQueues [wie _onImmediate] (/home/ubuntu/workspace/Authentication.1/node_modules/sequelize/node_modules/bluebird /js/release/async.js:17:14)
User.findOne({
// SELECT * FROM users WHERE username = username || email = ...
where: {
$or: [{username: username}, {email: req.body.email}]
}
}).then(function(user){
// GETTING ERROR HERE. If username is already in database
if(user.username !== null && user.username == req.body.username) {
return done(null, false, console.log("USER TAKEN"),{message : 'That username is already taken'});
}
// If email is already in database return err.
else if(user.email !== null && user.email == req.body.email) {
return done(null, false, console.log("EMAIL TAKEN"),{message : 'That email is already taken'});
}
else [code for create new account]...
'user' ist null, nicht der Benutzername. – Li357