Intégration de bases de données
L’ajout de la fonctionnalité permettant de connecter des bases de données aux applications Express consiste simplement à charger un pilote Node.js approprié pour les bases de données de votre application. Ce document explique brièvement comment ajouter et utiliser dans votre application Express certains des modules Node.js les plus populaires pour les systèmes de base de données :
Ces pilotes de base de données ne sont qu’une partie de ceux disponibles. Pour d’autres options, consultez le site npm.
Cassandra
Module : cassandra-driver Installation
$ npm install cassandra-driver
Exemple
var cassandra = require('cassandra-driver');
var client = new cassandra.Client({ contactPoints: ['localhost']});
client.execute('select key from system.local', function(err, result) {
if (err) throw err;
console.log(result.rows[0]);
});
CouchDB
Module : nano Installation
$ npm install nano
Exemple
var nano = require('nano')('http://localhost:5984');
nano.db.create('books');
var books = nano.db.use('books');
//Insert a book document in the books database
books.insert({name: 'The Art of war'}, null, function(err, body) {
if (!err){
console.log(body);
}
});
//Get a list of all books
books.list(function(err, body){
console.log(body.rows);
});
LevelDB
Module : levelup Installation
$ npm install level levelup leveldown
Exemple
var levelup = require('levelup');
var db = levelup('./mydb');
db.put('name', 'LevelUP', function (err) {
if (err) return console.log('Ooops!', err);
db.get('name', function (err, value) {
if (err) return console.log('Ooops!', err);
console.log('name=' + value);
});
});
MySQL
Module : mysql Installation
$ npm install mysql
Exemple
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'dbuser',
password : 's3kreee7'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
connection.end();
MongoDB
Module : mongodb Installation
$ npm install mongodb
Exemple
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/animals', function(err, db) {
if (err) {
throw err;
}
db.collection('mammals').find().toArray(function(err, result) {
if (err) {
throw err;
}
console.log(result);
});
});
Si vous voulez un pilote de modèle d’objet pour MongoDB, recherchez Mongoose.
Neo4j
Module : apoc Installation
$ npm install apoc
Exemple
var apoc = require('apoc');
apoc.query('match (n) return n').exec().then(
function (response) {
console.log(response);
},
function (fail) {
console.log(fail);
}
);
Oracle
Module: oracledb
Installation
Remarque: Voir les conditions préalables à l’installation.
$ npm install oracledb
Exemple
const oracledb = require('oracledb')
const config = {
user: '<your db user>',
password: '<your db password>',
connectString: 'localhost:1521/orcl'
}
async function getEmployee (empId) {
let conn
try {
conn = await oracledb.getConnection(config)
const result = await conn.execute(
'select * from employees where employee_id = :id',
[empId]
)
console.log(result.rows[0])
} catch (err) {
console.log('Ouch!', err)
} finally {
if (conn) { // conn assignment worked, need to close
await conn.close()
}
}
}
getEmployee(101)
PostgreSQL
Module : pg-promise Installation
$ npm install pg-promise
Exemple
var pgp = require("pg-promise")(/*options*/);
var db = pgp("postgres://username:password@host:port/database");
db.one("SELECT $1 AS value", 123)
.then(function (data) {
console.log("DATA:", data.value);
})
.catch(function (error) {
console.log("ERROR:", error);
});
Redis
Module : redis Installation
$ npm install redis
Exemple
var client = require('redis').createClient();
client.on('error', function (err) {
console.log('Error ' + err);
});
client.set('string key', 'string val', redis.print);
client.hset('hash key', 'hashtest 1', 'some value', redis.print);
client.hset(['hash key', 'hashtest 2', 'some other value'], redis.print);
client.hkeys('hash key', function (err, replies) {
console.log(replies.length + ' replies:');
replies.forEach(function (reply, i) {
console.log(' ' + i + ': ' + reply);
});
client.quit();
});
SQLite
Module : sqlite3 Installation
$ npm install sqlite3
Exemple
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run('CREATE TABLE lorem (info TEXT)');
var stmt = db.prepare('INSERT INTO lorem VALUES (?)');
for (var i = 0; i < 10; i++) {
stmt.run('Ipsum ' + i);
}
stmt.finalize();
db.each('SELECT rowid AS id, info FROM lorem', function(err, row) {
console.log(row.id + ': ' + row.info);
});
});
db.close();
ElasticSearch
Module : elasticsearch Installation
$ npm install elasticsearch
Exemple
var elasticsearch = require('elasticsearch');
var client = elasticsearch.Client({
host: 'localhost:9200'
});
client.search({
index: 'books',
type: 'book',
body: {
query: {
multi_match: {
query: 'express js',
fields: ['title', 'description']
}
}
}
}).then(function(response) {
var hits = response.hits.hits;
}, function(error) {
console.trace(error.message);
});