环回模型 json 对象数组严格过滤
loopback model json array of objects strict filter
我正在使用 strongloop loopback v3 REST API 和 mongoDB 作为数据源。我的模型 order.json
是
{
"name": "order",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"orderNo": {
"type": "string"
},
"lines": {
"type": [
{
"type": {
"description": "string",
"quantity": "number"
}
}
]
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
我设置 "strict": true
以便 the model accepts only predefined properties。但是这个 对数组 lines
.
中的属性不起作用
即如果你 post 这个对象到 API 你会得到一个预期的 ValidationError (代码 422):
{
"orderNo": "xyz",
"someOtherProp": "hello",
"lines": [
{
"description": "abc",
"quantity": 5
}
]
}
但是如果你post这个JSON对象环回保存对象到mongoDB
{
"orderNo": "xyz",
"lines": [
{
"description": "abc",
"quantity": 5,
"someOtherProp": "hello"
}
]
}
我的问题是关于模型 JSON 中是否要设置任何标志来验证对象数组?或者我是否必须通过 order.js
model extension file?
自己验证嵌套文档
将lines
定义为另一个模型,并使其与order
模型中的类型embedsMany
相关联。
线条模型
{
"name": "line",
"base": "Model",
"strict": true,
"idInjection": true,
"properties": {
"description": {
"type": "string"
},
"quantity":{
"type":"number"
}
}
}
订购型号
{
"name": "order",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"orderNo": {
"type": "string"
}
},
"validations": [],
"relations": {
"lines":{
"type": "embedsMany",
"model": "line",
"property": "lines"
}
},
"acls": [],
"methods": {}
}
这种方式环回将验证 line
模型
我正在使用 strongloop loopback v3 REST API 和 mongoDB 作为数据源。我的模型 order.json
是
{
"name": "order",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"orderNo": {
"type": "string"
},
"lines": {
"type": [
{
"type": {
"description": "string",
"quantity": "number"
}
}
]
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
我设置 "strict": true
以便 the model accepts only predefined properties。但是这个 对数组 lines
.
即如果你 post 这个对象到 API 你会得到一个预期的 ValidationError (代码 422):
{
"orderNo": "xyz",
"someOtherProp": "hello",
"lines": [
{
"description": "abc",
"quantity": 5
}
]
}
但是如果你post这个JSON对象环回保存对象到mongoDB
{
"orderNo": "xyz",
"lines": [
{
"description": "abc",
"quantity": 5,
"someOtherProp": "hello"
}
]
}
我的问题是关于模型 JSON 中是否要设置任何标志来验证对象数组?或者我是否必须通过 order.js
model extension file?
将lines
定义为另一个模型,并使其与order
模型中的类型embedsMany
相关联。
线条模型
{
"name": "line",
"base": "Model",
"strict": true,
"idInjection": true,
"properties": {
"description": {
"type": "string"
},
"quantity":{
"type":"number"
}
}
}
订购型号
{
"name": "order",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"orderNo": {
"type": "string"
}
},
"validations": [],
"relations": {
"lines":{
"type": "embedsMany",
"model": "line",
"property": "lines"
}
},
"acls": [],
"methods": {}
}
这种方式环回将验证 line
模型