DataGen, redis-stream et Cushion, des API en Node.js
pour la manipulation de flux, la génération de fichiers tests et la connexion DB.

Voici une courte présentation de trois API basées sur Node.js et qui touchent aux flux de données, à la génération de gros fichiers tests et à la connexion aux bases de données.


redis-stream

redis-stream est une API pour les flux de données. Elle est axée autour du protocole Redis. C'est en fait un module extrêmement léger, mais l'auteur a inclus des tests et des exemples intéressants. Les méthodes standards de Node pour les flux fonctionnent, les données peuvent alors être redirigées :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var Redis = require('redis-stream')
  , client = new Redis(6379, localhost, 0)
  , rpop = client.stream('rpop');
 
rpop.pipe(process.stdout);
rpop.write('my-list-key');

Cela ne s'applique pas qu'à rpop, les autres commandes Redis s'utilisent d'une manière semblable.

Les sources de redis-stream.


DataGen

DataGen est un générateur de gros fichiers de données tests multiprocessus. Il peut être utilisé pour générer des fichiers dans différents formats, y compris le CSV et JSON. Il utilise des modèles qui décrivent la génération.

Des chaînes de caractères, des dates et des nombres aléatoires peuvent être ainsi générés. Cette génération de données aléatoires est basée sur la bibliothèque Faker.

DataGen a été conçu pour réduire les temps de génération pour les gros fichiers de tests, cela en utilisant plusieurs processus au lieu d'un seul.

Il est facile à utiliser. Vous devez définir un modèle avec un header, des segments et un footer.

Header :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<?xml version="1.0" encoding="UTF-8"?>
<data>

Segment :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<segment>
  <id>{gen_id}-{worker_id}-{segment_id}</id>
  <name>{first_name()} {last_name()}</name>
  <dob>{date('dd-mm-yyyy')}</dob>
</segment>

Footer :


Vous avez la liste des paramètres possible sur github.

Ce qui donne au final le XML suivant :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<data>
<segment>
  <id>1-1-1</id>
  <name>Niels Bryant</name>
  <dob>12-08-1992</dob>
</segment>
<segment>
  <id>1-1-2</id>
  <name>John Bohr</name>
  <dob>01-11-1970</dob>
</segment>
...
</data>

Les sources de DataGen.


Cushion

Cushion est une API CouchDB (système de gestion de base de données orienté documents). Elle fonctionne de manière asynchrone avec les méthodes habituelles de l'API CouchDB. Elle supporte également les requêtes de bas niveau en appelant cushion.request.

Pour faire une connexion, vous pouvez préciser les paramètres de connexion à la base de données :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
cushion.Connection(host, port, username, password, additional);

L'extraction de documents retourne un objet document qui peut être modifié et enregistré comme ceci :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
var doc = db.document('id');
doc.load(function(err, document) {
  document.body({ name: 'Quincy' });
  document.save();
});

Les designs et les utilisateurs peuvent également être récupérés et manipulés, chacun ayant ses propres méthodes.

Les sources de Cushion.

D'après un article sur DailyJS.