json - 带有 json-server 的 Angular 发布实体,没有 ID
问题描述
我正在使用模拟服务器 json-server 开发一个 Angular 项目。GET 工作正常,但现在我在使用 POST 时遇到了一些问题。
我interventi.json
用这些数据定义了这个文件:
{
"interventi":[
{
"codice": "123",
"codiceUso": 897,
"dataIntervento": "21-06-2019",
"dataInserimento": "24-06-2019",
"cooperativa": "Example",
"puntoVendita": "Example",
"tipiAttivita": [
"Prelievo",
"Sanzione"
],
"organoCompetente": "Ex"
},
{
"codice": "456",
"codiceUso": 823764,
"dataIntervento": "24-06-2019",
"dataInserimento": "29-06-2019",
"cooperativa": "Example 2",
"puntoVendita": "Example 2",
"tipiAttivita": [
"Prelievo"
],
"organoCompetente": "Ex"
}
]
}
我正在尝试发布这个json:
{
"codice":"a7spx",
"codiceUso":"123",
"dataIntervento":"2019-06-21T12:58:09.345Z",
"cooperativa":"2",
"puntoVendita":2,
"tipiAttivita":[
"Attivita 1",
"Attivita 2"
],
"organoCompetente":3,
"dataInserimento":"2019-06-21T12:58:09.345Z"
}
但它给了我 500 内部服务器错误:
“TypeError:无法读取 Function.createId 处未定义的属性 'id'(C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\json-server\lib\server\mixins .js:47:39) 在 Function.insert (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\lodash-id\src\index.js:47:49 ) 在 C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\lodash\lodash.js:4374:28 在 arrayReduce (C:\Users\Marina\coop-workspace\ wqrng\web\src\main\angular\wqrng\node_modules\lodash\lodash.js:683:21) 在 baseWrapperValue (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\ node_modules\lodash\lodash.js:4373:14) 在 LodashWrapper.wrapperValue (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\lodash\lodash.js:9052:14) 在层创建 (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\json-server\lib\server\router\plural.js:225:50) .handle [as handle_request] (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\layer.js:95:5) 在下一个 (C :\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\route.js:137:13)在下一个(C:\Users\Marina\coop-工作区\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\route.js:131:14)"5) 在下一个 (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\route.js:137:13) 在下一个 (C:\用户\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\route.js:131:14)"5) 在下一个 (C:\Users\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\route.js:137:13) 在下一个 (C:\用户\Marina\coop-workspace\wqrng\web\src\main\angular\wqrng\node_modules\express\lib\router\route.js:131:14)"
我已按照本教程进行发布,发现该字段id
不是强制性的,但服务器正在抱怨。如果我id
在我的 json 中添加字段,它可以正常工作。但我不想在我的实体中使用 id,有没有办法禁用这种行为?
编辑
// Return incremented id or uuid
// Used to override lodash-id's createId with utils.createId
function createId(coll) {
var _ = this;
var idProperty = _.__id();
if (_.isEmpty(coll)) {
return 1;
} else {
var id = _(coll).maxBy(idProperty)[idProperty];
// Increment integer id or generate string id
return _.isFinite(id) ? ++id : nanoid(7);
}
}
解决方案
如果您使用除默认“id”以外的任何 id,则您已使用 json-server CLI 显式配置它。
--id, -i Set database id property (e.g. _id) [default: "id"]
检查以下链接
推荐阅读
- javascript - 有睡眠/等待吗?
- acl - 基于 Vertex 属性的 ACL 图分层循环
- javascript - 在每次 OnClick 之后清除 Ajax 数据,然后追加新数据
- ios - 如何使用 SwiftUI 将应用程序采用到 iOS 13 暗模式?
- python-3.x - 从 bs4 导入时如何绕过 ModuleNotFoundError?
- python - 增加彩色图像亮度时的索引数量不正确
- selenium-webdriver - 如何在 Java 中使用 Selenium 在 Safari 中打开选项卡
- ssis - 在 SSIS 执行包任务中选择 PackagName 时类字符串无效
- javascript - 右侧带有verticalScroll的Vis.js时间轴
- powershell - $Using:var 在 Invoke-Command 内的 Start-Job 中