我使用这个库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)
}
}
}
答案 0 :(得分:0)
问题是Model.create
返回一个Promise
对象,而不是您所期望的用户。这就是您所看到的JSON(一个Promise对象)。您需要等待该Promise完成,然后提取返回值。您可以像其他几行一样使用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)