Я пытаюсь создать регистрацию и логин в первый раз с express и реагировать с помощью PostgreSQL. Мой пост работает просто отлично. Пользователь может быть добавлен в базу данных, поэтому я приступил к обработке дубликатов. Я использую функцию findUserByEmail, чтобы найти свою электронную почту, а затем, в моих маршрутах, создать пользователя, если он не существует.
Я перепробовал все и до сих пор вызывает проблемы. Мне удается заставить его работать, просто возвращая запрос без ответа, что я не считаю правильным:
const findUserByEmail = (req, response) => {
return pool.query("SELECT * FROM users WHERE email = $1", [req.body.email])
};
Хотя мне нужен ответ для обработки ошибок.
Способ, который я нашел более распространенным и который я пытаюсь сделать так:
const findUserByEmail = (req, response) => {
pool.query("SELECT * FROM users WHERE email = $1", [req.body.email]),
(error, results) => {
if (error) {
throw error;
}
response.json(results.rows);
};
};
И когда я звоню здесь:
app.post("/signup/user", (req, res, next) => {
queries
.findUserByEmail(req, res)
.then(user => {
if (user.rows.length > 0) {
res.status(400).send("this email is already in use");
} else {
queries.createUser(req.body, res);
}
})
.catch(err => {
console.log(err);
res.status(500).send("Something went wrong");
});
});
Но ошибка:
Cannot read property 'then' of undefined
Если кто-нибудь может мне помочь, потому что я провел 2/3 недели только для аутентификации. Я оставлю репо, если кто-нибудь захочет посмотреть, хотя и немного грязно. https://github.com/jaitone/CRUD-in-JS
Спасибо!