我是Strongloop的新手,也是MongoDB的新手。现在有很多学习曲线。
我的基本问题是我将用户模型(models.json)数据源从内存连接器切换到loopback-connector-mongodb连接器,当我调用/ login时,我不再获得userId。我得到一个accessstoken,但userID为null。如果我切换回内存连接器,我会得到一个1或者其他的userId。
似乎我记得在某个地方读书,如果我不提供ID,Strongloop会为我添加一个。这仅适用于内存数据存储区吗?我需要做一些特别的事情,因为它是mongo吗?
我是否也需要将accessToken模型切换为mongo(我只想到这个)?
感谢。
答案 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"
}
}
}
},