UNPKG

@loopback/docs

Version:

Documentation files rendered at [https://loopback.io](https://loopback.io)

85 lines (65 loc) 3.09 kB
--- lang: en title: 'Add a Datasource' keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Tutorial sidebar: lb4_sidebar permalink: /doc/en/lb4/todo-tutorial-datasource.html summary: LoopBack 4 Todo Application Tutorial - Add a Datasource --- ### Datasources Datasources are LoopBack's way of connecting to various sources of data, such as databases, APIs, message queues and more. A `DataSource` in LoopBack 4 is a named configuration for a Connector instance that represents data in an external system. The Connector is used by `legacy-juggler-bridge` to power LoopBack 4 Repositories for Data operations. In LoopBack 4, datasources can be represented as strongly-typed objects and freely made available for [injection](../../Dependency-injection.md) throughout the application. Typically, in LoopBack 4, datasources are used in conjunction with [Repositories](../../Repository.md) to provide access to data. For more information about datasources in LoopBack, see [DataSources](../../DataSource.md). Since our Todo API will need to persist instances of Todo items, we'll need to create a datasource definition to make this possible. ### Building a Datasource From inside the project folder, we'll run the `lb4 datasource` command to create a DataSource. For the purposes of this tutorial, we'll be using the memory connector provided with the Juggler. ```sh lb4 datasource ? Datasource name: db ? Select the connector for db: In-memory db (supported by StrongLoop) ? window.localStorage key to use for persistence (browser only): ? Full path to file for persistence (server only): ./data/db.json create src/datasources/db.datasource.ts update src/datasources/index.ts Datasource Db was created in src/datasources/ ``` To view the completed files, see the [`Todo` example](https://github.com/strongloop/loopback-next/tree/master/examples/todo/src/datasources). Create a `data` folder in the applications root and add a new file called `db.json` containing an example database. {% include code-caption.html content="data/db.json" %} ```json { "ids": { "Todo": 5 }, "models": { "Todo": { "1": "{\"title\":\"Take over the galaxy\",\"desc\":\"MWAHAHAHAHAHAHAHAHAHAHAHAHAMWAHAHAHAHAHAHAHAHAHAHAHAHA\",\"id\":1}", "2": "{\"title\":\"destroy alderaan\",\"desc\":\"Make sure there are no survivors left!\",\"id\":2}", "3": "{\"title\":\"play space invaders\",\"desc\":\"Become the very best!\",\"id\":3}", "4": "{\"title\":\"crush rebel scum\",\"desc\":\"Every.Last.One.\",\"id\":4}" } } } ``` {% include note.html content="If you are using a relational database as the datasource, don't forget to create the corresponding table or follow the [Database migration instructions](https://loopback.io/doc/en/lb4/Database-migrations.html) to get it created programmatically. " %} Once you're ready, we'll move onto adding a [repository](todo-tutorial-repository.md) for the datasource. ### Navigation Previous step: [Add your Todo model](todo-tutorial-model.md) Next step: [Add a repository](todo-tutorial-repository.md)