Javascript (节点:1572)未经处理的PromiserEjectionWarning:ValidationError:配置文件验证失败:education.0.fieldsofstudy:路径'fieldsofstudy'是必需的

Javascript (节点:1572)未经处理的PromiserEjectionWarning:ValidationError:配置文件验证失败:education.0.fieldsofstudy:路径'fieldsofstudy'是必需的,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在尝试查找此验证错误的根本原因:节点:1572未处理PromiserEjectionWarning:ValidationError:配置文件验证失败:education.0.fieldsofstudy:需要路径字段sOfStudy。 即使我将研究领域改为其他名称,如专业,这种情况也在发生。仍然会返回相同的错误消息 这是我的教育档案代码 // @route POST api/profile/education // @desc Add education to profile //

我正在尝试查找此验证错误的根本原因:节点:1572未处理PromiserEjectionWarning:ValidationError:配置文件验证失败:education.0.fieldsofstudy:需要路径字段sOfStudy。 即使我将研究领域改为其他名称,如专业,这种情况也在发生。仍然会返回相同的错误消息

这是我的教育档案代码

// @route   POST api/profile/education
// @desc    Add education to profile
// @access  Private
router.post(
"/education",
passport.authenticate("jwt", { session: false }),
(req, res) => {
const { errors, isValid } = validateEducationInput(req.body);

// Check Validation
if (!isValid) {
  // Return any errors with 400 status
  return res.status(400).json(errors);
}

Profile.findOne({ user: req.user.id }).then(profile => {
  const newEdu = {
    school: req.body.school,
    degree: req.body.degree,
    fieldofstudy: req.body.fieldofstudy,
    from: req.body.from,
    to: req.body.to,
    current: req.body.current,
    description: req.body.description
  };

  // Add to exp array
  profile.education.unshift(newEdu);

  profile.save().then(profile => res.json(profile));
  });
 }
);
这是我的“教育”选项卡代码

data.school = !isEmpty(data.school) ? data.school : "";
data.degree = !isEmpty(data.degree) ? data.degree : "";
data.fieldofstudy = !isEmpty(data.fieldofstudy) ? data.fieldofstudy:"";
data.from = !isEmpty(data.from) ? data.from : "";

if (Validator.isEmpty(data.school)) {
  errors.school = "School field is required";
 }

if (Validator.isEmpty(data.degree)) {
    errors.degree = "Degree field is required";
 }

if (Validator.isEmpty(data.fieldofstudy)) {
   errors.fieldofstudy = "Field of study field is required";
 }

 if (Validator.isEmpty(data.from)) {
   errors.from = "From date field is required";
 }

 return {
   errors,
  isValid: isEmpty(errors)
 };
};

问题在于你的模型。当您在models文件夹中创建概要文件模式时,您不小心将其命名为fieldsofstudy而不是fieldofstudy singular。验证中的字段必须与模型中的字段匹配。

数据。fieldofstudy是我的const newEdu的一部分,即使我将变量切换到data.majors,我仍然会收到相同的错误消息。在我重新启动机器并重新配置依赖项后,此问题得到解决。