坚持用户使用Strongloop Loopback

Geo*_*ett 3 strongloop loopbackjs

您如何将用户数据保留在生产中?有没有一种简单的方法来查找用户模型的模式,以便可以在数据库中重现?

(抢先注意:DiscoverSchema查找数据库的模式,而不是模型)

(另外,我知道文档说可以通过在默认的db数据源中设置文件属性来保持用户模型,但我对此有安全性,可伸缩性和持久性问题.)

Dec*_*ent 6

  1. 设置数据库.
  2. 通过添加数据库编辑./server/datasources.json来定义新的数据源,例如:

"mongodb_dev": { 
    "name": "mongodb_dev",
    "connector": "mongodb",
    "host": "127.0.0.1", 
    "database": "devDB", 
    "username": "devUser", 
    "password": "devPassword", 
    "port": 27017 
  }
Run Code Online (Sandbox Code Playgroud)

  1. 更新./server/model-config.json以使内置模型使用您的新数据源:

{
  "_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
  }
}
Run Code Online (Sandbox Code Playgroud)

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();
});
Run Code Online (Sandbox Code Playgroud)

  1. 运行脚本 cd server node create-lb-tables.js

这是关于在db上放置内置模型的官方文档的链接

https://docs.strongloop.com/display/public/LB/Creating+database+tables+for+built-in+models