Databases
Node.js permet d'utiliser facilement toutes sortes de databases : SQL, NoSQL etc...
GitHub - mysqljs/mysql: A pure node.js JavaScript Client implementing the MySQL protocol.
GitHub
GitHub - mongodb/node-mongodb-native: The Official MongoDB Node.js Driver
GitHub
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

Sequelize
Sequelize ORM
1
const Sequelize = require('sequelize');
2
const sequelize = new Sequelize('database', 'username', 'password');
3
4
const User = sequelize.define('User', {
5
firstName: Sequelize.STRING,
6
lastName: Sequelize.STRING
7
});
8
9
const main = async () => {
10
11
await sequelize.sync();
12
13
const userModel = await User.create({firstName: 'Foo', lastName: 'BAR'});
14
15
const user = user.get({plain: true})
16
17
};
18
19
main();
Copied!

ODM MongoDB

Mongoose ODM v6.0.10
1
const mongoose = require('mongoose');
2
3
mongoose.connect('mongodb://localhost/test');
4
5
const User = mongoose.model('User', {
6
firstName: String,
7
lastName: String
8
});
9
10
const foo = new User({
11
firstName: 'Foo',
12
lastName: 'BAR'
13
});
14
15
await foo.save();
Copied!
Last modified 3yr ago