对象#<object>没有方法&#39;验证&#39;在Express </object>中发布时

时间:2015-03-02 14:20:16

标签: json angularjs express mongoose mean-stack

我正在尝试使用Angular和Express创建一个简单的民意调查应用。我已经完成了大部分工作但是在发布数据时应用程序崩溃了。快递控制台似乎吐出的唯一错误是:

 node_modules\mongoose\lib\schema\documentarray.js:94
        doc.validate(function (err) {
        ^

TypeError:Object#没有方法'validate'

我发送的数据样本如下:

    { 
question: 'string',
  responses:
   { '0': { responseText: 'asdsa' },
     '1': { responseText: 'asdasd' },
     '2': { responseText: 'sadasd' } 
    } 
}

这是我的快递api: http://pastebin.com/HT6yp1UN

这是我的模特 http://pastebin.com/PJbaRJnX

我认为这可能与mongoose没有得到它期望的数据类型有关,但是看看帖子请求它似乎与我的模型所期望的一致。我在这个问题上找不到更多,有人能指出我正确的方向吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的mongoose架构中,您将responses定义为一个数组,并将responses作为对象的对象发送。

您应该在通过POST发送数据之前对数据进行整形,以反映您的猫鼬模式:

question: 'string',
  responses:
   [ { responseText: 'asdsa' },
     { responseText: 'asdasd' },
     { responseText: 'sadasd' } 
   ] 
}