Databases

Node.js permet d'utiliser facilement toutes sortes de databases : SQL, NoSQL etc...

https://github.com/felixge/node-mysql

https://github.com/mongodb/node-mongodb-native

Pour la plupart des applications, il est préférable d'utiliser une base NoSQL telle que MongoDB pour bénéficier des avantages suivants :

  • L'absence de schéma statique permet de s'adapter rapidement aux nouveaux besoins.

  • La scalability grâce au sharding.

  • Syntaxe simplifiée.

  • Map/Reduce.

  • ...

ORM (Object-Relational Mapping) / ODM (Object-Document Mapping)

Comme dans les autres langages, il est fortement recommandé d'utiliser une couche d'abstraction pour des raisons de factorisation, simplification et sécurité.

ORM SQL

http://sequelizejs.com

const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password');
const User = sequelize.define('User', {
firstName: Sequelize.STRING,
lastName: Sequelize.STRING
});
const main = async () => {
await sequelize.sync();
const userModel = await User.create({firstName: 'Foo', lastName: 'BAR'});
const user = user.get({plain: true})
};
main();

ODM MongoDB

http://mongoosejs.com/

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
const User = mongoose.model('User', {
firstName: String,
lastName: String
});
const foo = new User({
firstName: 'Foo',
lastName: 'BAR'
});
await foo.save();