使用NodeJS Post route将多个数组插入MongoDB

时间:2015-07-22 02:45:25

标签: arrays node.js mongodb curl mongoose

我正在NodeJS和MongoDB中构建一个简单的配方插入工具,以便理解MEAN堆栈。每个配方都有一个标题,描述和成分数组(可以有多个成分数组),它们具有成分名称。我尝试运行一个简单的cURL查询将测试配方插入到数据库中,并在以下行显示以下错误:Cannot read property 'name' of undefinedname: 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 &#39;name&#39; of undefined</h1>
<h2></h2>
<pre>TypeError: Cannot read property &#39;name&#39; of undefined
    at C:\app\routes\index.js:33:26
    ...

0 个答案:

没有答案