Vous êtes sur la page 1sur 5

CommonJS vs ES6 Modules dans Node.

js

CommonJS

 Utilisation: Principalement dans Node.js pour le développement côté serveur.

 Syntaxe: Utilise require() pour importer des modules et module.exports pour les exporter.

 Chargement: Synchronisé, idéal pour les serveurs où les modules sont sur le système de fichiers local.

 Exemple:

ES6 Modules

 Utilisation: Standard ECMAScript, utilisé dans le développement JavaScript moderne, tant côté client que
serveur.

 Syntaxe: Utilise import et export.

 Chargement: Asynchrone, adapté pour les applications web où les modules sont téléchargés via Internet.

 Exemple:
Différences Clés

 Syntaxe: Diffère pour l'importation et l'exportation.

 Chargement: ES6 supporte le chargement asynchrone, contrairement à CommonJS.

 Support Navigateur: Les navigateurs modernes supportent nativement les modules ES6.

 Analyse Statique vs Dynamique: Les modules ES6 permettent une analyse statique, contrairement à
CommonJS.

Utiliser ES6 dans Node.js

 Version de Node.js: Assurez-vous d'utiliser Node.js version 12 ou ultérieure, avec un support plus stable
dans les versions 13.2.0 et plus.

 Extension de Fichier: Utilisez l'extension .mjs ou ajoutez "type": "module" dans votre package.json.

Conclusion

L'utilisation de modules ES6 dans Node.js offre des avantages tels qu'une syntaxe plus propre, un meilleur support
pour l'analyse statique, et un meilleur alignement avec les standards ECMAScript. Cependant, il est important de
tester soigneusement votre code, surtout si vous intégrez des modules CommonJS et ES6 ensemble, pour assurer la
compatibilité et le bon fonctionnement de votre application.

17/12/2023

Ma3art ach derna wa9ila les fichiers (read ,write…)

31/12/2023

Développement Web avec Node

var express = require('express');


var app = express();
app.get('/books',(req,res)=> {
console.log(req.query);
res.send("Hello from express")
})

app.listen(9999)

13/01/2024

Middleware : a middleware is a function

Express.static : Fichiers statiques (anything other than the source code)

App.use(express.static(‘public’)); “ Dossier public vous définissez la racine des fichiers


Exemple : Public (css,js,images)

App.use(bodyParser.urlencoded({ extended : false }) // Cas de formulaire html

App.use(bodyParser.json()) // Cas de API

Exemple :

const express = require('express');


const app = express();
const port = 9999;

// Middleware function
const myLogger = function (req, res, next) {
console.log('A request was made to:', req.url);
next();
};

// Apply the middleware


app.use(myLogger);

// Route
app.get('/', (req, res) => {
res.send('Hello World!');
});

// Start the server


app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});

TP :

App.js :

const express = require('express');


const bodyParser = require('body-parser');
const sqlite3 = require('sqlite3').verbose();

const app = express();

app.use(bodyParser.urlencoded({ extended: true }));


app.set('view engine', 'ejs');
app.use(express.static('public'));

app.get('/login', (req, res) => {


res.render('login');
});

app.post('/login', (req, res) => {


const { username, password } = req.body;
if (username === 'admin' && password === 'admin') {
res.redirect('/home');
} else {
res.send('Incorrect Username and/or Password!');
}
});

app.get('/home', (req, res) => {


res.render('home');
});

app.listen(9000, () => {
console.log('Server is running on port 9000');
});

Login :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form action="/login" method="POST">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
</div>
<div>
<button type="submit">Login</button>
</div>
</form>
</body>
</html>

Home:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home</title>
</head>
<body>
<h1>Bonjour</h1>
<img src="/images/logo.png" alt="Logo" style="width: 150px; height: auto;">
</body>
</html>

Vous aimerez peut-être aussi