Loopback Api Explorer Create Error: Invalid Date
Loopback Api Explorer Create Error: Invalid Date
我正在使用 API 环回资源管理器创建具有以下参数的模型:
{
"name": "string",
"last_name": "string",
"phone": 0,
"is_invited": true,
"realm": "string",
"username": "string",
"credentials": {},
"challenges": {},
"email": "string",
"emailVerified": true,
"status": "string",
"created": "2016-06-03",
"lastUpdated": "2016-06-03",
"id": 0
}
但是,服务器总是返回 500 无效日期错误:
{
"error": {
"name": "Error",
"status": 500,
"message": "Invalid date: Invalid Date",
"stack": "Error: Invalid date: Invalid Date\n at DateType }
}
这是我的模型,供参考。继承了Loopback的User模型。
{
"name": "ExeboardUser",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"last_name": {
"type": "string"
},
"phone": {
"type": "number",
"required": true
},
"is_invited": {
"type": "boolean",
"required": true
}
},
"validations": [],
"relations": {
"boards": {
"type": "hasMany",
"model": "Board",
"foreignKey": "exeboardUserId",
"through": "ExeboardUserBoard"
}
},
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "logout"
}
],
"methods": {
}
}
谁能告诉我日期有什么问题吗?我认为它的格式正确,因为它是资源管理器生成的默认参数。
不知道你是否对答案感兴趣,但我最近开始使用环回并得到了与你相同的错误,服务器接受的日期格式是这样的 2017-01-06T23: 58:10.000Z
希望对大家有所帮助。
Ps.: 如果模型不需要日期,甚至不要发送它,即使使用 "null" 或 "" 值,它也会抛出 500 状态错误。
正确的日期格式是:2017-10-12T10:31:37.925Z
并且如果你想添加dateCreated和dateUpdate的字段,那么使用date mixin loopback-ds-timestamp-mixin
使用
安装 mixin
npm i loopback-ds-timestamp-mixin --save
将混音 属性 添加到您的 server/model-config。json:
{
"_meta": {
"sources": [
"loopback/common/models",
"loopback/server/models",
"../common/models",
"./models"
],
"mixins": [
"loopback/common/mixins",
"../node_modules/loopback-ds-timestamp-mixin",
"../common/mixins"
]}
}
在你的模型中:
{
"name": "ExeboardUser",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"mixins": {
"TimeStamp" : true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"last_name": {
"type": "string"
},
"phone": {
"type": "number",
"required": true
},
"is_invited": {
"type": "boolean",
"required": true
}
},
"validations": [],
"relations": {
"boards": {
"type": "hasMany",
"model": "Board",
"foreignKey": "exeboardUserId",
"through": "ExeboardUserBoard"
}
},
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "logout"
}
],
"methods": {
}
}
处理字符串化参数时,您应该在查询过滤器中以简化的扩展 ISO 格式将日期值作为字符串发送。
这是一个示例,说明如何使用 toISOString 方法以非常简单的方式执行此操作:
const dataValue = new Date('10 May 2018 19:30 UTC');
console.log(dataValue.toISOString());
// output: 2018-05-10T19:30:00.000Z
我正在使用 API 环回资源管理器创建具有以下参数的模型:
{
"name": "string",
"last_name": "string",
"phone": 0,
"is_invited": true,
"realm": "string",
"username": "string",
"credentials": {},
"challenges": {},
"email": "string",
"emailVerified": true,
"status": "string",
"created": "2016-06-03",
"lastUpdated": "2016-06-03",
"id": 0
}
但是,服务器总是返回 500 无效日期错误:
{
"error": {
"name": "Error",
"status": 500,
"message": "Invalid date: Invalid Date",
"stack": "Error: Invalid date: Invalid Date\n at DateType }
}
这是我的模型,供参考。继承了Loopback的User模型。
{
"name": "ExeboardUser",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"last_name": {
"type": "string"
},
"phone": {
"type": "number",
"required": true
},
"is_invited": {
"type": "boolean",
"required": true
}
},
"validations": [],
"relations": {
"boards": {
"type": "hasMany",
"model": "Board",
"foreignKey": "exeboardUserId",
"through": "ExeboardUserBoard"
}
},
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "logout"
}
],
"methods": {
}
}
谁能告诉我日期有什么问题吗?我认为它的格式正确,因为它是资源管理器生成的默认参数。
不知道你是否对答案感兴趣,但我最近开始使用环回并得到了与你相同的错误,服务器接受的日期格式是这样的 2017-01-06T23: 58:10.000Z
希望对大家有所帮助。
Ps.: 如果模型不需要日期,甚至不要发送它,即使使用 "null" 或 "" 值,它也会抛出 500 状态错误。
正确的日期格式是:2017-10-12T10:31:37.925Z
并且如果你想添加dateCreated和dateUpdate的字段,那么使用date mixin loopback-ds-timestamp-mixin
使用
安装 mixinnpm i loopback-ds-timestamp-mixin --save
将混音 属性 添加到您的 server/model-config。json:
{
"_meta": {
"sources": [
"loopback/common/models",
"loopback/server/models",
"../common/models",
"./models"
],
"mixins": [
"loopback/common/mixins",
"../node_modules/loopback-ds-timestamp-mixin",
"../common/mixins"
]}
}
在你的模型中:
{
"name": "ExeboardUser",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"mixins": {
"TimeStamp" : true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"last_name": {
"type": "string"
},
"phone": {
"type": "number",
"required": true
},
"is_invited": {
"type": "boolean",
"required": true
}
},
"validations": [],
"relations": {
"boards": {
"type": "hasMany",
"model": "Board",
"foreignKey": "exeboardUserId",
"through": "ExeboardUserBoard"
}
},
"acls": [
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "logout"
}
],
"methods": {
}
}
处理字符串化参数时,您应该在查询过滤器中以简化的扩展 ISO 格式将日期值作为字符串发送。
这是一个示例,说明如何使用 toISOString 方法以非常简单的方式执行此操作:
const dataValue = new Date('10 May 2018 19:30 UTC');
console.log(dataValue.toISOString());
// output: 2018-05-10T19:30:00.000Z