您如何将用户数据保留在生产中?有没有一种简单的方法来查找用户模型的模式,以便可以在数据库中重现?
(抢先注意:DiscoverSchema找到数据库的架构,而不是模型)
(另外,我知道文档说可以通过在默认的db数据源中设置文件属性来保持用户模型,但我对此有安全性,可伸缩性和持久性方面的考虑。)
答案 0 :(得分:6)
"mongodb_dev": {
"name": "mongodb_dev",
"connector": "mongodb",
"host": "127.0.0.1",
"database": "devDB",
"username": "devUser",
"password": "devPassword",
"port": 27017
}

{
"_meta": {
"sources": [
"loopback/common/models",
"loopback/server/models",
"../common/models",
"./models"
],
"mixins": [
"loopback/common/mixins",
"loopback/server/mixins",
"../common/mixins",
"./mixins"
]
},
"User": {
"dataSource": "mongodb_dev"
},
"AccessToken": {
"dataSource": "mongodb_dev",
"public": false
},
"ACL": {
"dataSource": "mongodb_dev",
"public": false
},
"RoleMapping": {
"dataSource": "mongodb_dev",
"public": false
},
"Role": {
"dataSource": "mongodb_dev",
"public": false
}
}

3.创建server / create-lb-tables.js文件,使用以下内容将内置表移动到数据库中
var server = require('./server');
var ds = server.dataSources.mongodb_dev;// <<<<<<note the datasource name
var lbTables = ['User', 'AccessToken', 'ACL', 'RoleMapping', 'Role'];
ds.automigrate(lbTables, function(er) {
if (er) throw er;
console.log('Loopback tables [' + lbTables + '] created in ', ds.adapter.name);
ds.disconnect();
});
&#13;
cd server
node create-lb-tables.js
这是关于在db上放置内置模型的官方文档的链接
https://docs.strongloop.com/display/public/LB/Creating+database+tables+for+built-in+models
答案 1 :(得分:2)
您应该通过连接器将用户保留在您选择的数据库中。
file属性仅用于将数据持久保存到文件系统,不建议用于生产。对于生产,您应该使用其中一个连接器(MongoDB,MySQL等)来保存您的数据。
请参阅文档以了解哪些属性是内置用户模型的一部分,或更改默认数据库设置以将用户模型持久保存到文件系统,以查看JSON文件输出中可用的属性。如果您不理解这一切,请浏览tutorial series以了解所有这些概念。干杯。 ;)
答案 2 :(得分:0)
由于没有人真正分享如何实现这一点,我使用了来自strongloop的example-mysql repo并调整了2个文件来构建这个例子。
db
更改为您的数据源)请点击此处:https://github.com/mikesparr/loopback-example-users-to-mysql
祝你好运!答案 3 :(得分:0)
slc loopback:dataSource
model-config.json
并提及上面创建的数据源。