По умолчанию «db» datasource помещается в память. Вот почему ваши данные не сохраняются после перезапуска приложения. Вы должны установить соответствующий соединитель базы данных, а затем вам нужно добавить источник данных для своей базы данных внутри сервера/datasources.js.
http://docs.strongloop.com/display/public/LB/Connecting+models+to+data+sources
Если вы создали приложение с помощью команды «SLC шлейфа», то ваш источник данных содержит только разъем памяти. Проверьте datasources.js файл, и вы увидите что-то вроде этого:
{
"db": {
"name": "db",
"connector": "memory"
}
}
Если вы хотите, чтобы ваши данные сохраняются, например, в базе данных PostgreSQL (процесс практически одинаков для любого поддерживаемого соединителя), вы должны расширить свои datasoruces. json файл с информацией о вашей базе данных:
{
"db": {
"name": "db",
"connector": "memory"
},
"mydata": {
"host": "db_host",
"database": "your_database_name",
"username": "your_db_username",
"password": "your_db_password",
"connector": "postgresql"
}
}
Вы также можете сделать это, используя команду slc loopback: datasource. Мастер поможет вам определить ваш источник данных. Не забудьте установить разъем db.
npm install loopback-connector-postgresql
Последнее, что нужно сделать, это присвоить источник данных желаемым моделям. Вы можете сделать это с помощью мастера (см. Команду slc loopback: model), или вы можете вручную отредактировать файл server/model-config.json.
{
"User": {
"dataSource": "mydata",
"public": true
},
"AccessToken": {
"dataSource": "mydata",
"public": false
},
"ACL": {
"dataSource": "mydata",
"public": false
},
"RoleMapping": {
"dataSource": "mydata",
"public": false
},
"Role": {
"dataSource": "mydata",
"public": false
}
}
UPDATE Вы можете попробовать этот код, чтобы обновить таблицы из моделей. Поместите свой код где-то в сервере/server.js
var appModels = ['User', 'AccessToken', 'ACL', 'RoleMapping', 'Role'];
var ds = app.dataSources.mydata;
ds.isActual(appModels, function(err, actual) {
if (!actual) {
ds.autoupdate(appModels, function(err) {
if (err) throw (err);
});
}
});
Я рекомендовал бы вам прочитать о создании/обновлении схемы базы данных из моделей на strongloop странице. Обратите внимание примыкают разницы между автообновление и automigrate функций
http://docs.strongloop.com/display/public/LB/Creating+a+database+schema+from+models
Спасибо за ваш ответ. Я уже пробовал то же самое. Только одна проблема: я не могу перенести это в базу данных. Я пробовал использовать команду Arc и cli. –
Не могли бы вы объяснить подробнее, что вы пробовали? –
Я обновил ответ с помощью некоторого кода и ссылки на документы, где вы можете больше узнать об обновлении схемы из моделей. –