Le Guide Node.js par Wishtack
  • Le Guide Node.js par Wishtack
  • ECMAScript 6+
  • TypeScript
  • Tools
  • Node.js
    • Pourquoi Node.js ?
    • Modules
    • Global objects
    • Events & Listeners
    • Streams
    • Error Management
  • Express
    • Getting Started
    • Express Generator
    • Middlewares
    • Routing
    • Templating
    • Quelques Liens
  • LoopBack
  • Testing
  • Databases
  • WebSocket
  • Sécurité
Powered by GitBook
On this page
  • ORM (Object-Relational Mapping) / ODM (Object-Document Mapping)
  • ORM SQL
  • ODM MongoDB

Databases

PreviousTestingNextWebSocket

Last updated 6 years ago

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

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

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

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();

http://sequelizejs.com
http://mongoosejs.com/
https://github.com/felixge/node-mysql
https://github.com/mongodb/node-mongodb-native
SequelizeSequelize ORM
Logo
Mongoose ODM v6.1.7
GitHub - mongodb/node-mongodb-native: The Official MongoDB Node.js DriverGitHub
Logo
GitHub - mysqljs/mysql: A pure node.js JavaScript Client implementing the MySQL protocol.GitHub
Logo
Logo