Я пытался использовать pg-обещание с passportjs, но я не могу заставить работать локальную регистрацию. Мой логин работает хорошо. Пожалуйста, смотрите ниже:
passport.use(
"local-signup",
new LocalStrategy(
{
usernameField: "email",
passwordField: "pass",
passReqToCallback: true
},
(req, email, pass, done) => {
process.nextTick(function() {
q.db
.one("select email from users where email = $1", email)
.then(data => {
if (data) {
return done(
null,
false,
req.flash("signupMessage", "User already exists")
);
} else {
console.log("here!?");
q.db
.none(
"insert into users (email, pass)" +
`values (${email}, ${pass})`
)
.then(data => {
console.log("created?");
});
}
})
.catch(err => {
console.log(err);
});
});
}
)
);
Проблема здесь в том, что он фактически обнаруживает, если пользователь уже находится в базе данных, но если пользователя не существует, он не создает имя пользователя, а вместо этого пропускает весь процесс.
Есть идеи, как решить эту проблему?
Спасибо