创建扩展基本模型的自定义模型时,数据将插入基本模型,而不是自定义模型。
passportConfigurator.init();
passportConfigurator.setupModels({
userModel: app.models.customer,
userIdentityModel: app.models.customerIdentity,
userCredentialModel: app.models.customerCredential,
});
{
"_meta": {
"sources": [
"../common/models",
"./models",
"./node_modules/loopback-component-passport/lib/models"
]
},
"User": {
"dataSource": "mongoDb",
"public": false
},
"AccessToken": {
"dataSource": "mongoDb",
"public": false
},
"customer": {
"dataSource": "mongoDb",
"public": true
},
"accessToken": {
"dataSource": "mongoDb",
"public": false
},
"customerCredential": {
"dataSource": "mongoDb",
"public": false
},
"customerIdentity": {
"dataSource": "mongoDb",
"public": false
},
"ACL": {
"dataSource": "mongoDb",
"public": false
},
"RoleMapping": {
"dataSource": "mongoDb",
"public": false
},
"Role": {
"dataSource": "mongoDb",
"public": false
}
}
customer.json
{
"name": "customer",
"plural": "customers",
"base": "User",
"relations": {
"accessTokens": {
"type": "hasMany",
"model": "accessToken",
"foreignKey": "customerId"
},
"customeridentities": {
"type": "hasMany",
"model": "customerIdentity",
"foreignKey": "customerId"
},
"customercredentials": {
"type": "hasMany",
"model": "customerCredential",
"foreignKey": "customerId"
}
},
"validations": [],
"acls": [],
"methods": []
}
{
"name": "customerCredential",
"plural": "customerCredentials",
"base": "UserCredential",
"properties": {},
"validations": [],
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
},
"acls": [],
"methods": []
}
{
"name": "accessToken",
"plural": "accessTokens",
"base": "AccessToken",
"properties": {},
"validations": [],
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
},
"acls": [],
"methods": []
}
{
"name": "customerIdentity",
"plural": "customerIdentities",
"base": "UserIdentity",
"properties": {},
"validations": [],
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
},
"acls": [],
"methods": []
}
以上是代码中的配置。
但是在数据库中,创建的表是User和AccessToken,而不是customer和accessToken。
当我从model-config.json中删除用户和访问令牌时。
"User": {
"dataSource": "mongoDb",
"public": false
},
"AccessToken": {
"dataSource": "mongoDb",
"public": false
}
在mongo数据库中创建了customer表和accessToken表(自定义表)。 但是我在控制台中收到以下错误消息。
错误消息
模型" accessToken"配置"属于类似用户的模型"与目标模型的关系"用户"。但是,模型"用户"不附加到应用程序,因此不能被这种关系使用。当应用程序具有自定义自定义User子类时,通常会发生这种情况,但不会修复AccessToken关系以使用此新模型。 但是当将User和AccessToken添加到model-config时,在db中创建的表不是自定义dbs customer和accessToken。它的基础数据模型是User和AccessToken。