loopback-connector-sqlite
Version:
LoopBack SQLite3 Database Connector. LoopBack is an API Mgmt/MBaas platform built on top of express by StrongLoop. It supports the notion of connectors to connect to databases, restful web services, soap web services etc.
76 lines (64 loc) • 3.25 kB
Markdown
## loopback-connector-sqlite [](https://travis-ci.org/Synerzip/loopback-connector-sqlite)
[**LoopBack**](http://loopback.io/) is a highly-extensible, open-source Node.js framework that enables you to create dynamic end-to-end REST APIs with little or no coding. It also enables you to access data from major relational databases, MongoDB, SOAP and REST APIs.
**loopback-connector-sqlite** is the SQLite3 connector module for [loopback-datasource-juggler](https://github.com/strongloop/loopback-datasource-juggler).
Checkout **[wiki pages](https://github.com/Synerzip/loopback-connector-sqlite/wiki)** to get updated information about this connector and how to use it with a LoopBack Application to create an API.
## Basic usage
#### Installation
Install the module using the command below in your projects root directory:
```sh
npm i loopback-connector-sqlite
```
#### Configuration
The SQLite3 database can be configured to operate in 2 ways: with a DB file name or with an anonymous in-memory DB.
This connector needs 2 configuration parameters:
* `file_name`(string): It can be a file at the root of the project itself if preceded by `./`, e.g., `./test.sqlite3`, OR, it can be an absolute file path(e.g. `/home/[user]/Desktop/test.sqlite3` or `C:\Users\[user]\Desktop\test.sqlite3`) to generate/use the SQLite file. It can also contain `null` for SQLite3 in-memory usage.
* `debug`(boolean): Used for disabling and enabling logging.
A DataSource with basic settings can be defined as shown below:
```javascript
var DataSource = require('loopback-datasource-juggler').DataSource;
var dataSource = new DataSource(require('../index'), {
file_name: './dev.sqlite3',
debug: false
});
```
Checkout `examples` folder to get the idea of basic usage.
Run the examples from the root directory as follows:
```sh
node examples/[example_file]
```
#### NOTE: Defining Models
The model names must not be among one of the keywords used in SQLite3. Checkout [all SQLite3 keywords here](https://sqlite.org/lang_keywords.html). It's stated there that _these **keywords** may **not be used** as the **names of tables, indices, columns, databases, user-defined functions, collations, virtual table modules, or any other named object**._
#### Dependencies
* [sqlite3](https://www.npmjs.com/package/sqlite3)
* [loopback-connector](https://www.npmjs.com/package/loopback-connector)
* [debug](https://www.npmjs.com/package/debug)
* [async](https://www.npmjs.com/package/async)
## SQLite3 configuration for tests
The `.loopbackrc` file holds the settings for the tests. It's in JSON format and has following content:
* For file based SQLite testing
```JSON
{
"sqlite": {
"test": {
"file_name": "./test.sqlite3",
"debug": false
}
}
}
```
* For anonymous in-memory SQLite testing
```JSON
{
"sqlite": {
"test": {
"file_name": null,
"debug": false
}
}
}
```
The `file_name` is the name of the sqlite3 DB file, which will be created, or, used if already present.
The `debug` value is to set debugging mode.
## Running the tests
* execute `npm install` for installing all the dependencies.
* execute `npm test` to run all the tests.