我在NodeJS和MongoDB中构建了一个简单的配方插入工具,以便了解MEAN堆栈。每个配方都有一个标题,说明和成分数组(可以有多个成分数组),它们都有成分名称。我试着运行一个简单的cURL查询来将测试配方插入到数据库中,并且出现以下错误:Cannot read property 'name' of undefined
,位于以下行:name: req.ingredients.name
。这篇文章有2个问题。第一个是(它也可能回答第二个),当将数据插入数据库时,以下方法是否正确?其次,抛出这个错误的数组插入有什么问题?由于可能有多个“成分”数组,下面的方法会在执行过程中抛出错误吗?使用NodeJS将多个数组插入MongoDB Post route
路线\ 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
...
这里需要的细节将包括您通过cURL发布的数据,实际上命令甚至可以查看cURL语法是否正确。然后,当然取决于看起来像什么,当你“记录”变量时,你也可以看到'req.ingredients'看起来是什么样子,因为你可能会有解析器问题与输入。 –