如何显示查询结果?

How to display the result of the query?

我使用这个库 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)
        }
    }
}

问题是 Model.create return 是一个 Promise 对象,而不是您所期望的用户。这就是您看到的 JSON 是一个 promise 对象。您需要等待该 Promise 完成,然后提取 return 值。您可以像在其他几行中那样使用 await 关键字来执行此操作。这意味着您应该调用:

res.status(201).json(user)

编辑:API 文档中似乎没有获取创建的值,我无法在本地复制。 您可以将值存储在一个变量中,然后 return 那个。

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)