如何正确使用MongoDB for Strongloop scaffolded用户模型存储?

时间:2014-07-10 14:01:12

标签: javascript mongodb loopbackjs strongloop

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

我的基本问题是我将用户模型(models.json)数据源从内存连接器切换到loopback-connector-mongodb连接器,当我调用/ login时,我不再获得userId。我得到一个accessstoken,但userID为null。如果我切换回内存连接器,我会得到一个1或者其他的userId。

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

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

感谢。

1 个答案:

答案 0 :(得分:3)

你在这里遇到了一个边缘案例:user和accessToken由两种不同类型的DB支持。 MongoDB使用ObjectID作为默认密钥,而内存DB使用数字。

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

  "accessToken": {
    "dataSource": "db",
    "public": true,
    "options": {
      "base": "AccessToken",
      "relations": {
        "user": {
          "model": "user",
          "type": "belongsTo",
          "foreignKey": "userId"
        }
      }
    }
  },