下面是关于udemy的教程,遇到了此错误。 “无法读取未定义的属性'unshift'”。香港专业教育学院以前有这个问题,但这是因为我忘记了对json网络令牌的身份验证。这次已通过身份验证,并且代码是一个接一个字母地检查,并且完全相同。我们都知道100%的代码教程已经过时并且缺少信息。
已检查并验证了身份验证。字段已检查并验证。我看到的一个方面是“经验”没有“构造函数”?
router.put(
'/experience',
[
auth,
[
check('title', 'Title is required')
.not()
.isEmpty(),
check('company', 'Company is required')
.not()
.isEmpty(),
check('from', 'From date is required')
.not()
.isEmpty()
]
],
async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({errors: errors.array() });
}
const {
title,
company,
location,
from,
to,
current,
description
} = req.body;
const newExp = {
title,
company,
location,
from,
to,
current,
description
}
//const experience = [];
try{
const profile = await Profile.findOne({ user: req.user.id });
profile.experience.unshift(newExp);
await profile.save();
res.json(profile);
} catch(err){
console.error(err.message);
res.status(500).send('server put exp error')
}
}
答案 0 :(得分:0)
我正在同一门课程上,我的解决方案是更改线路
profile.experience.unshift(newExp);
到
profile.experiences.unshift(newExp);
这是它在数据库中的保存方式。