Javascript 环回扩展用户模型抛出TypeError:无法将未定义或null转换为对象
我正在尝试扩展默认用户模型,如下所示: 我使用Javascript 环回扩展用户模型抛出TypeError:无法将未定义或null转换为对象,javascript,loopbackjs,strongloop,Javascript,Loopbackjs,Strongloop,我正在尝试扩展默认用户模型,如下所示: 我使用slc loopback:modelcli命令创建新的“account”模型(使用firstName和lastName属性扩展内置用户模型)。它创建了一个common/models/account.json: { "name": "account", "base": "User", "idInjection": true, "options": { "validateUpsert": true }, "properti
slc loopback:model
cli命令创建新的“account”模型(使用firstName和lastName属性扩展内置用户模型)。它创建了一个common/models/account.json
:
{
"name": "account",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
"account": {
"dataSource": "db",
"public": true
}
和一个common/models/account.js
:
'use strict';
module.exports = function(Account) {
};
还添加到服务器/model config.json
:
{
"name": "account",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
"account": {
"dataSource": "db",
"public": true
}
当我尝试登录新url而不是401时,我得到一个500错误:
Unhandled error for request POST /api/accounts/login: TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
at Memory._findAllSkippingIncludes (d:\test-api\node_modules\loopback-datasource-juggler\lib\connectors\memory.js:432:22)
at Memory.all (d:\test-api\node_modules\loopback-datasource-juggler\lib\connectors\memory.js:506:20)
at invokeConnectorMethod (d:\test-api\node_modules\loopback-datasource-juggler\lib\dao.js:169:21)
at d:\test-api\node_modules\loopback-datasource-juggler\lib\dao.js:2131:7
at doNotify (d:\test-api\node_modules\loopback-datasource-juggler\lib\observer.js:155:49)
at d:\test-api\node_modules\loopback-datasource-juggler\lib\observer.js:168:23
at d:\test-api\node_modules\async\dist\async.js:473:16
at replenish (d:\test-api\node_modules\async\dist\async.js:1006:25)
at d:\test-api\node_modules\async\dist\async.js:1016:9
at eachLimit$1 (d:\test-api\node_modules\async\dist\async.js:3196:24)
at Object.<anonymous> (d:\test-api\node_modules\async\dist\async.js:1046:16)
at doNotify (d:\test-api\node_modules\loopback-datasource-juggler\lib\observer.js:157:11)
at doNotify (d:\test-api\node_modules\loopback-datasource-juggler\lib\observer.js:155:49)
at doNotify (d:\test-api\node_modules\loopback-datasource-juggler\lib\observer.js:155:49)
at doNotify (d:\test-api\node_modules\loopback-datasource-juggler\lib\observer.js:155:49)
request POST/api/accounts/login的未处理错误:TypeError:无法将未定义或null转换为对象
在Function.keys()处
在内存中。\u findallskipingincludes(d:\test api\node\u modules\loopback datasource juggler\lib\connectors\Memory.js:432:22)
位于Memory.all(d:\test api\node\u modules\loopback datasource juggler\lib\connectors\Memory.js:506:20)
在invokeConnectorMethod(d:\test api\node\u modules\loopback datasource juggler\lib\dao.js:169:21)
位于d:\test api\node\u modules\loopback datasource juggler\lib\dao.js:2131:7
在doNotify(d:\test api\node\u modules\loopback datasource juggler\lib\observer.js:155:49)
位于d:\test api\node\u modules\loopback datasource juggler\lib\observer.js:168:23
位于d:\test api\node\u modules\async\dist\async.js:473:16
补充时(d:\test api\node\u modules\async\dist\async.js:1006:25)
位于d:\test api\node\u modules\async\dist\async.js:1016:9
每个限制$1(d:\test api\node\u modules\async\dist\async.js:3196:24)
反对。(d:\test api\node\u modules\async\dist\async.js:1046:16)
在doNotify(d:\test api\node\u modules\loopback datasource juggler\lib\observer.js:157:11)
在doNotify(d:\test api\node\u modules\loopback datasource juggler\lib\observer.js:155:49)
在doNotify(d:\test api\node\u modules\loopback datasource juggler\lib\observer.js:155:49)
在doNotify(d:\test api\node\u modules\loopback datasource juggler\lib\observer.js:155:49)
如果我将登录api url更改为/Users/login,它将按预期返回401。你知道怎么了吗 显然清除了数据库,并首先创建了一个用户解决了问题。如果尚未将任何实体输入数据库,则存在问题。请求后的有效负载是什么?@AntonioTrapani问题是,我试图在创建新用户之前登录,我希望使用401而不是500。似乎有些初始化只发生在数据库的第一个条目上。添加用户后,它工作正常。