docs/site/Memory-connector.md
LoopBack's built-in memory connector enables you to test your application without connecting to an actual persistent data source such as a database. Although the memory connector is very well tested it is not suitable for production.
The memory connector supports:
{% include important.html content=" The memory connector is designed for development and testing of a single-process application without setting up a database. It cannot be used in a cluster as the worker processes will have their own isolated data not shared in the cluster.
You can persist data between application restarts using the file property. See
Data persistence for more information. " %}
The connector does not implement transactions. Hence, transactions will fail with an error.
{% include important.html content=" If you specify the file property, the connector will save data there that will persist when you restart the application. Otherwise, the memory connector does not persist data after an application stops. " %}
By default, data in the memory connector are transient. When an application
using the memory connector exits, all model instances are lost. To maintain data
across application restarts, specify a JSON file in which to store the data with
the file property when creating the data source.
The simplest way to do this is by editing
src/datasources/[datasource name].datasource.ts; for example:
{% include code-caption.html content="src/datasources/db.datasource.ts" %}
import {inject} from '@loopback/core';
import {juggler} from '@loopback/repository';
const config = {
name: 'db',
connector: 'memory',
localStorage: '',
+ file: './data/db.json',
- file: '',
};
export class DbDataSource extends juggler.DataSource {
static dataSourceName = 'db';
static readonly defaultConfig = config;
constructor(
@inject('datasources.config.db', {optional: true})
dsConfig: object = config,
) {
super(dsConfig);
}
}