@loopback/docs
Version:
Documentation for LoopBack 4
62 lines (46 loc) • 1.93 kB
Markdown
lang: en
title: 'Add a Datasource'
keywords: LoopBack 4.0, LoopBack 4
tags:
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. 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](Repositories.md) to provide
access to data.
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
Create a new folder in the root directory of the project called `config`, and
then inside that folder, create a `datasources.json` file. For the purposes of
this tutorial, we'll be using the memory connector provided with the Juggler.
#### config/datasources.json
```json
{
"name": "db",
"connector": "memory"
}
```
Inside the `src/datasources` directory create a new file called `db.datasource.ts`. This file will create
a strongly-typed export of our datasource using the `DataSourceConstructor`,
which we can consume in our application via injection.
#### src/datasources/db.datasource.ts
```ts
import * as path from 'path';
import {DataSourceConstructor, juggler} from '@loopback/repository';
const dsConfigPath = path.resolve('config', 'datasources.json');
const config = require(dsConfigPath);
export const db = new DataSourceConstructor(config);
```
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)