L'origine dati "db" predefinita viene inserita nella memoria. Questo è il motivo per cui i tuoi dati non vengono mantenuti dopo il riavvio dell'applicazione. Devi installare il connettore del database appropriato e quindi devi aggiungere l'origine dati per il tuo database all'interno del server/datasources.js.
http://docs.strongloop.com/display/public/LB/Connecting+models+to+data+sources
Se si è creato l'applicazione con il comando "slc loopback", allora la vostra origine dati contiene solo connettore di memoria. Controllare datasources.js di file e vedrete qualcosa di simile:
{
"db": {
"name": "db",
"connector": "memory"
}
}
Se si vuole persistere i dati, ad esempio nel database PostgreSQL (processo è quasi uguale per qualsiasi connettore supportato), si deve espandere le vostre datasoruces. file json con le informazioni del database:
{
"db": {
"name": "db",
"connector": "memory"
},
"mydata": {
"host": "db_host",
"database": "your_database_name",
"username": "your_db_username",
"password": "your_db_password",
"connector": "postgresql"
}
}
È anche possibile farlo utilizzando il comando "slc loopback: datasource". La procedura guidata ti aiuterà a definire la tua origine dati. Non dimenticare di installare il connettore db.
npm install loopback-connector-postgresql
L'ultima cosa da fare è assegnare l'origine dati ai modelli desiderati. È possibile farlo utilizzando la procedura guidata (consultare il comando loopback slc: model), oppure è possibile modificare manualmente il file 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
}
}
AGGIORNAMENTO Si può provare questo frammento di codice per aggiornare le tabelle dai modelli. Inserire il suo codice in qualche parte del server/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);
});
}
});
ti consiglierei di leggere sulla creazione/aggiornamento schema del database dai modelli a pagina strongloop. Prestare attenzione intestano differenza tra le funzioni di Aggiornamento automatico e AutoMigrate
http://docs.strongloop.com/display/public/LB/Creating+a+database+schema+from+models
Grazie per la risposta. Ho già provato la stessa cosa. Unico problema: non riesco a migrare nel database. Ho provato ad usare Arc e cli command. –
Puoi spiegare con maggiori dettagli cosa hai provato? –
Ho aggiornato la risposta con un po 'di codice e link a documenti in cui è possibile leggere ulteriori informazioni sull'aggiornamento dello schema dai modelli. –