对象 #<Object> 在 Express 中发布时没有方法'validate'



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

 node_modulesmongooselibschemadocumentarray.js:94
        doc.validate(function (err) {
        ^

类型错误:对象#没有方法"验证"

我发送的数据样本看起来像:

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

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

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

我认为这可能与猫鼬没有得到预期的数据类型有关,但从帖子请求来看,这似乎符合我的模型的预期。我在这个问题上找不到更多的信息,有人能给我指明正确的方向吗?

谢谢!

在您的猫鼬模式中,您将responses定义为一个数组,并且您将作为对象的对象在responses之间发送。

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

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

最新更新