尽管定义了所有字段变量,但从 Mongoose 模型创建的对象不包含所有字段

时间:2021-06-17 22:49:39

标签: node.js express mongoose post

我正在尝试从猫鼬模型创建一个对象,然后将其保存到我的数据库中。然而,并非请求中的所有字段都填充在这个新对象的字段中。我尝试通过将它们记录到控制台来检查它们是否已定义,并且它们都已定义,所以我不知道为什么它们不会出现在新对象中。

这是我的路线的代码:

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
}

0 个答案:

没有答案
相关问题