Пожалуйста, я вижу пустой массив {} при тестировании своего кода в Postman. Я использую node.js, express. js и pg-обещание, чтобы создать нового пользователя в моем коде. При тестировании пользователь создается в базе данных Postgres, как и ожидалось, но ответ показывает {}. Однако я хотел, чтобы в ответе отображалось сообщение об успешном завершении и сгенерированный токен. Я не знаю, если проблема в коде, не генерирующем токен. Найдите мой код ниже:
ФУНКЦИЯ CREATEUSER
async createUser(req, res) {
if (!req.body.username || !req.body.email || !req.body.password) {
return res.status(400).send({'message': 'Some values are missing'});
}
const hashedPassword = await bcrypt.hash(req.body.password, 10);
const query = `insert into user_table(username, email, email_verified, password, role, created_at, last_login)
VALUES ($1, $2, $3, $4, $5, now(), now()) returning *`;
const values = [req.body.username, req.body.email, req.body.email_verified, hashedPassword, req.body.role];
try {
const { result } = await db.one(query, values);
const token = jwt.sign(
{ username: result.rows[0].username }, process.env.JWT_SECRET, { expiresIn: '7d' }
);
return res
.status(200)
.cookie('jwt', token, {
httpOnly: true
})
.json({
success: true,
data: data,
message: 'One user created'
});
} catch (err) {
return res.json(err);
}
},
Что-то не так с методом, который я использую для генерации токена ниже?
const token = jwt.sign(
// the first parameter is an object which will become the payload of the token
{ username: result.rows[0].username }, process.env.JWT_SECRET, { expiresIn: '7d' }
);
ИЛИ Что-то не так с той частью, где у меня есть ответ, как показано ниже?
return res
.status(200)
.cookie('jwt', token, {
httpOnly: true
})
.json({
success: true,
data: data,
message: 'One user created'
});
} catch (err) {
return res.json(err);
}