我正在尝试从猫鼬模型创建一个对象,然后将其保存到我的数据库中。然而,并非请求中的所有字段都填充在这个新对象的字段中。我尝试通过将它们记录到控制台来检查它们是否已定义,并且它们都已定义,所以我不知道为什么它们不会出现在新对象中。
这是我的路线的代码:
router.post(
"/",
[
auth,
[
check("name", "name is required").not().isEmpty(),
check("email", "Please inclue a valid email").isEmail(),
check("phoneNumber", "Phone Number is required").isMobilePhone(),
check("address", "address is required").not().isEmpty(),
check("userName", "Username is required").not().isEmpty(),
],
],
async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
const { name, email, phoneNumber, userName, address } = req.body;
try {
let profile = await Profile.findOne({ email });
if (profile) {
return res
.status(400)
.json({ errors: [{ msg: "profile already exists" }] });
}
profile = new Profile({
name,
email,
userName,
phoneNumber,
address,
});
await profile.save();
res.json(profile);
} catch (err) {
console.error(err.message);
res.status(500).send("server error");
}
}
);
这是一个示例请求和响应:
request
{
"name": "Steve smith",
"email": "steve@gmail.com",
"password": "123456",
"phoneNumber": "1234567891",
"userName": "Stee",
"address": "3575 Ryans Lane"
}
response
{
"_id": "60cbce51544e17643c78d459",
"name": "Steve smith",
"userName": "Stee",
"address": "3575 Ryans Lane",
"__v": 0
}