我正在NodeJS和MongoDB中构建一个简单的配方插入工具,以便理解MEAN堆栈。每个配方都有一个标题,描述和成分数组(可以有多个成分数组),它们具有成分名称。我尝试运行一个简单的cURL查询将测试配方插入到数据库中,并在以下行显示以下错误:Cannot read property 'name' of undefined
:name: req.ingredients.name
。这篇文章有2个问题。第一个是(并且它也可以回答第二个),在将数据插入数据库时,以下方法是否正确?其次,抛出此错误的数组插入有什么问题?由于可能存在多个“成分”数组,下面的方法会在执行期间抛出错误吗?
路由\ index.js
router.post('/recipes', function(req, res, next) {
var recipe = new Recipe();
recipe.description = req.description;
recipe.title = req.title;
recipe.ingredients = [{
name: req.ingredients.name
}];
recipe.save(function(err, recipe){
if(err){ return next(err); }
res.json(recipe);
});
});
如果我需要提供更多详细信息,请与我们联系。
编辑:添加了其他详细信息
C:\>curl --data "description=howdy&title=test&ingredient[name]=apple" http://localhost:3000/recipes
<h1>Cannot read property 'name' of undefined</h1>
<h2></h2>
<pre>TypeError: Cannot read property 'name' of undefined
at C:\app\routes\index.js:33:26
...