Как отобразить результат запроса? - PullRequest
0 голосов
/ 02 апреля 2019

Я использую эту библиотеку oracle-sage . У меня есть запрос на создание пользователя. Сам запрос работает. Но есть такая проблема, что отображаемый результат выглядит так:

{
    "isFulfilled": false,
    "isRejected": false
}

Как отобразить созданную запись в формате JSON в результате?

module.exports.create = async function (req, res) {
    const candidate = await User.findOne(
        { LOGIN: req.body.LOGIN }
    )

    if (candidate) {
        res.status(409).json({
            message: 'This login is already taken. Try another one.'
        })
    } else {
        const salt = await bcrypt.genSaltSync(10)
        const password = await req.body.PASSWORD
        const user = User.create({
            LOGIN: req.body.LOGIN,
            EMAIL: req.body.PHONE,
            PASSWORD: bcrypt.hashSync(password, salt)
        });
        try {
            res.status(201).json(user)
        } catch (e) {
            console.log(e)
        }
    }
}

1 Ответ

0 голосов
/ 02 апреля 2019

Проблема в том, что Model.create возвращает объект Promise, а не пользователя, которого вы ожидаете.Это то, что вы видите JSON - объект обещания.Вам нужно дождаться завершения этого обещания и затем извлечь возвращаемое значение.Вы можете сделать это, используя ключевое слово await, как и в нескольких других строках.Это означает, что вы должны звонить:

res.status(201).json(user)

Редактировать: не похоже, что получение созданного значения является частью документации API, и я не могу воспроизвести локально.Вы можете сохранить значение в переменной и вернуть его.

const userObj = {
    LOGIN: req.body.LOGIN,
    EMAIL: req.body.PHONE,
    PASSWORD: bcrypt.hashSync(password, salt)
};
const user = User.create(userObj);
try {
    res.status(201).json(userObj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...