在我的快速api中,使用猫鼬,我使用User.create在api上创建了一个新用户。我如何获得创建对象的返回结果以包含在响应中?
我创建对象的方法是:
async store (req, res) {
const { name, lastName, email, password } = req.body
if (await User.findOne({ email })) {
return res.status(400).json({ error: 'User already exists' })
}
try {
await User.create({
name,
lastName,
email,
password,
role: 'USER_ROLE'
})
res.status(201).json({
ok: true,
message: 'User created'
})
} catch (e) {
res.status(500).json({
ok: false,
message: 'Failed to create User'
})
}
}
我想返回在res上创建的用户,例如:
res.status(201).json({
ok: true,
message: 'User created',
user: user
})
答案 0 :(得分:0)
async store(req, res) {
const { name, lastName, email, password } = req.body
if (await User.findOne({ email })) {
return res.status(400).json({ error: 'User already exists' })
}
try {
let user = await User.create({
name,
lastName,
email,
password,
role: 'USER_ROLE'
})
user = user.toJson();
delete user.password;
delete user.role;
res.status(201).json({
ok: true,
user: user,
message: 'User created'
})
} catch (e) {
res.status(500).json({
ok: false,
message: 'Failed to create User'
})
}
}
您可以使用以下方式将猫鼬对象隐藏为JSON
user.toJson()
然后,您可以删除不想发送到响应中的字段。
delete user.password;