2

我是 Strongloop 的新手,也是 MongoDB 的新手。现在有这么多的学习曲线。

我的基本问题是我将用户模型(models.json)数据源从内存连接器切换到 loopback-connector-mongodb 连接器,并且在调用 /login 时不再获得 userId。我取回了一个访问令牌,但用户 ID 为空。如果我切换回内存连接器,我会得到一个 1 或其他的 userId。

好像我记得如果我不提供 ID,Strongloop 会在某个地方为我添加一个。这仅适用于内存数据存储吗?既然是 mongo,我需要做一些特别的事情吗?

我是否也需要将 accessToken 模型切换为 mongo (我只是想到了这个)?

谢谢。

4

1 回答 1

3

您在这里遇到了一个极端情况: user 和 accessToken 由两种不同类型的 DB 支持。MongoDB 使用 ObjectID 作为默认键,而内存 DB 使用数字。

accessToken 从基础 AccessToken 扩展而来。它继承了与基本 User 模型的 belongsTo 关系。userId 类型设置为 number。要解决此问题,您可以确保 accessToken 模型已连接到 mongodb 或在 models.json 中添加以下关系。

  "accessToken": {
    "dataSource": "db",
    "public": true,
    "options": {
      "base": "AccessToken",
      "relations": {
        "user": {
          "model": "user",
          "type": "belongsTo",
          "foreignKey": "userId"
        }
      }
    }
  },
于 2014-07-11T16:14:15.933 回答