【问题标题】:Loopback extending User model throws TypeError: Cannot convert undefined or null to objectLoopback 扩展用户模型抛出 TypeError: Cannot convert undefined or null to object
【发布时间】:2018-07-30 22:22:13
【问题描述】:

我正在尝试按如下方式扩展默认用户模型:

我使用slc loopback:model cli 命令创建了新的“帐户”模型(使用 firstName 和 lastName 属性扩展了内置的 User 模型)。它创建了一个common/models/account.json

{
  "name": "account",
  "base": "User",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "firstName": {
      "type": "string"
    },
    "lastName": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

还有一个common/models/account.js

'use strict';

module.exports = function(Account) {

}; 

也添加到server/model-config.json

  "account": {
    "dataSource": "db",
    "public": true
  }

当我尝试登录新网址而不是 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)

如果我将登录 api url 更改为 /Users/login,它会按预期返回 401。有什么想法有什么问题吗?

【问题讨论】:

  • 什么是 POST 请求负载?
  • @AntonioTrapani 问题是我在创建新用户之前尝试登录,我期望的是 401 而不是 500。似乎一些初始化只发生在第一个条目进入数据库。添加用户后,效果很好。

标签: javascript loopbackjs strongloop


【解决方案1】:

显然清除了数据库,首先创建一个用户解决了这个问题。如果尚未将实体输入数据库,则存在问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2021-06-02
    • 2013-02-11
    • 2020-09-16
    • 2020-06-01
    相关资源
    最近更新 更多