0

我正在构建一个使用从 NodeJS 和 LoopBack 构建的 REST API 的 Angular 应用程序。尝试创建新记录时,我的应用程序和 Postman 都收到了一个奇怪的错误。(物业名称已更改以保护无辜者)

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 方法也有同样的问题。

有什么想法吗?

谢谢

4

1 回答 1

0

我找到了原因。在我使用过的以前的 API 中,后端设置了一个模型绑定器,该绑定器将应用它需要的属性并丢弃它不需要的属性。所以我通常会在 POST/PUTs/etc 中发送整个对象。在这种情况下,我们没有那个,所以它抛出了这个奇怪的错误。一旦我向我的 Angular 自动映射器添加了一个方法,该方法会将对象剥离到仅是必需品,它就可以正常工作了。

最后,我本可以弄清楚错误消息是否更好。

于 2017-12-04T20:28:54.830 回答