我正在构建一个Angular应用程序,它使用从NodeJS和LoopBack构建的REST API。在尝试创建新记录时,我从我的应用程序和邮递员那里得到了一个奇怪的错误。 (已更改属性名称以保护无辜者)
The `ObjectName` instance is not valid.
Details: `id` can't be blank (value: undefined);
`property2` can't be blank (value: undefined);
`property3` can't be blank (value: undefined).
这就是我发布的内容:
{
"id":0,
"property2":"foo",
"property3":"bar",
"property4":"R"
}
最奇怪的是,当我尝试通过LoopBack API Explorer运行时,它运行得很好。我也有与PATCH方法相同的问题。
有什么想法吗?
由于
答案 0 :(得分:0)
我找到了原因。在我以前使用的API中,后端设置了一个模型绑定器,它将应用所需的属性并丢弃它没有的属性。所以我通常在POST / PUT /等中发送整个对象。在这种情况下,我们没有那个,所以它抛出了这个奇怪的错误。一旦我将一个方法添加到我的Angular自动映射器中,该方法将该对象剥离为仅有的必需品,它就可以正常工作。
最后,如果错误消息更好,我可以想出来。