在 Express 中发布时,对象 #<Object> 没有方法 'validate'
Object #<Object> has no method 'validate' when posting in Express
我正在尝试使用 Angular 和 Express 创建一个简单的投票应用程序。我已经完成了大部分工作,但应用程序在发布数据时崩溃了。快速控制台似乎吐出的唯一错误是:
node_modules\mongoose\lib\schema\documentarray.js:94
doc.validate(function (err) {
^
TypeError: 对象 # 没有方法 'validate'
我发送的数据示例如下所示:
{
question: 'string',
responses:
{ '0': { responseText: 'asdsa' },
'1': { responseText: 'asdasd' },
'2': { responseText: 'sadasd' }
}
}
这是我的快递 api:
http://pastebin.com/HT6yp1UN
这是我的模型
http://pastebin.com/PJbaRJnX
我认为这可能与 mongoose 没有获得它期望的数据类型有关,但查看 post 请求似乎与我的模型期望的一致。我没能找到更多关于这个问题的信息,有人能给我指出正确的方向吗?
谢谢!
在您的 mongoose 架构中,您将 responses
定义为一个数组,并且您将 responses
作为对象的对象发送。
您应该在通过 POST 发送数据之前调整您的数据,以反映您的 mongoose 模式:
question: 'string',
responses:
[ { responseText: 'asdsa' },
{ responseText: 'asdasd' },
{ responseText: 'sadasd' }
]
}
我正在尝试使用 Angular 和 Express 创建一个简单的投票应用程序。我已经完成了大部分工作,但应用程序在发布数据时崩溃了。快速控制台似乎吐出的唯一错误是:
node_modules\mongoose\lib\schema\documentarray.js:94
doc.validate(function (err) {
^
TypeError: 对象 # 没有方法 'validate'
我发送的数据示例如下所示:
{
question: 'string',
responses:
{ '0': { responseText: 'asdsa' },
'1': { responseText: 'asdasd' },
'2': { responseText: 'sadasd' }
}
}
这是我的快递 api: http://pastebin.com/HT6yp1UN
这是我的模型 http://pastebin.com/PJbaRJnX
我认为这可能与 mongoose 没有获得它期望的数据类型有关,但查看 post 请求似乎与我的模型期望的一致。我没能找到更多关于这个问题的信息,有人能给我指出正确的方向吗?
谢谢!
在您的 mongoose 架构中,您将 responses
定义为一个数组,并且您将 responses
作为对象的对象发送。
您应该在通过 POST 发送数据之前调整您的数据,以反映您的 mongoose 模式:
question: 'string',
responses:
[ { responseText: 'asdsa' },
{ responseText: 'asdasd' },
{ responseText: 'sadasd' }
]
}