https://github.com/fabriquebeweb/dao
Le 'Data Access Object' pour les nuls !
https://github.com/fabriquebeweb/dao
dao data npm package
Last synced: 4 months ago
JSON representation
Le 'Data Access Object' pour les nuls !
- Host: GitHub
- URL: https://github.com/fabriquebeweb/dao
- Owner: fabriquebeweb
- License: mit
- Created: 2021-05-04T12:41:22.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-27T21:40:27.000Z (over 2 years ago)
- Last Synced: 2025-10-27T01:37:45.703Z (8 months ago)
- Topics: dao, data, npm, package
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@beweb/dao
- Size: 1.52 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://postimg.cc/G8jfLWBF)
# PRÉSENTATION
Le Data Access Object (DAO) est un modèle de programmation qui permet à un serveur de traiter des requêtes d'accès aux données de différentes Bases De Données (DB).
Lorsque le serveur reçoit des requêtes, le DAO s'occupe de les traduire avant de les envoyer au bon format, peu importe la DB choisie.
# INSTALLATION
- Installation de la librairie via `npm`
```bash
$ npm install @beweb/dao
```
- Import de la librairie
```js
const DAO = require('@beweb/dao')
```
- Instanciation d'une nouvelle DB dans une variable (chemin vers la DB)
SQLite
```js
const db = new DAO.SQLite('/uri/of/database')
```
MySQL
```js
const db = new DAO.MySQL('/uri/of/database')
```
MongoDB
```js
const db = new DAO.MongoDB('/uri/of/database')
```
Redis
```js
const db = new DAO.Redis('/uri/of/database')
```
# UTILISATION
`db` : Instance du DAO lié à la Base De Données ciblée
`'target'` : Collection MongoDB / Table SQL / Clé Redis
`element` : Objet JavaScript a récupérer / insérer / mettre à jour
`id` : ID de l'Objet JavaScript à obtenir / supprimer
`callback` : Traitement à effectuer une fois les valeurs récupérées
- create(`'target'`, `element`) ajoute un élement à la cible
```js
let new_element = {}
db.create('example', new_element)
```
- getAll(`'target'`, `callback()`) retourne toutes les données de la cible
```js
db.getAll('example', elements => {
console.log(elements)
})
```
- getById(`'target'`, `id`, `callback()`) retourne la donnée correspondant à l'ID dans la cible
```js
db.getById('example', element.id, element => {
console.log(element)
})
```
- update(`'target'`, `element`) modifie une donnée dans la cible
```js
updated_element.key = new_value
db.update('example', updated_element)
```
- delete(`'target'`, `id`) retire une donnée de la cible
```js
db.delete('example', element.id)
```
- seed(`'target'`, `elements`) remplie la cible avec une liste d'éléments
> **ATTENTION** cette méthode réinitialise la cible, et ne doit être utilisée que pour des tests
```js
db.seed('example', elements)
```
- `path` représente le chemin de la DB fournie
> **ATTENTION** modifier le `path` peut être dangereux pour l'intégrité des données
```js
db.path = './databases/new.db'
```
> Toutes les méthodes peuvent prendre une fonction de `callback` en dernier paramètre pour pouvoir gérer les réponses des requêtes, et les erreurs peuvent être gérées avec `try` et `catch`