gpt4 book ai didi

node.js - 如何使用express api获取Mongoose中创建的对象的返回

转载 作者:行者123 更新时间:2023-12-04 12:06:24 25 4
gpt4 key购买 nike

在我的 express api 中,使用 mongoose,我使用 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

})

最佳答案

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'
})
}
}
您可以使用
user.toJson()
将 Mongoose 对象转换为 JSON
然后您可以删除不想发送到响应中的字段。
delete user.password;

关于node.js - 如何使用express api获取Mongoose中创建的对象的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54125407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com