Express JS est un framwork Javascript pour nous faciliter la tache dans notre development NodeJS (request & response, routing .. )
npm install --save express
const express = require('express');
const app = express();

const express = require('express');
const app = express();
// executed for every incoming request
app.use((req, res, next) => {
console.log('in the middleware');
// next nous permet de continuer l'execution du code
next();
});
app.use((req, res, next) => {
console.log('another middleware');
res.send('<h1>Hello from the other side</h1>');
});
app.listen(3000);
npm install --save body-parser
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// parseur sinon on a 'undefined' a req.body
app.use(bodyParser.urlencoded({extended: false}));
app.use('/add-product', (req, res, next) => {
res.send('<form action="/product" method="POST"><input type="text" name="title"><button type="submit">Add Product</button></form>');
});
app.use('/product', (req, res, next) => {
console.log(req.body)
res.redirect("/");
})
app.use('/', (req, res, next) => {
res.send('<h1>Hello from the other side</h1>');
});
app.listen(3000);
LIMIT INCOMING REQUEST TO POST REQUEST :
// only for post
app.post('/product', (req, res, next) => {
console.log(req.body)
res.redirect("/");
})
// only for get
app.get('/product', (req, res, next) => {
console.log(req.body)
res.redirect("/");
})
// delete / patch / put fonctionnent aussi
Nous allons créer un dossier (par convention ) nommé Routes avec deux fichier dedans : admin.js et shop.js
// admin.js
const express = require ("express")
// on utilise ici router !
const router = express.Router();
// router remplace 'app'
router.get('/add-product', (req, res, next) => {
res.send('<form action="/product" method="POST"><input type="text" name="title"><button type="submit">Add Product</button></form>');
});
router.post('/product', (req, res, next) => {
console.log(req.body)
res.redirect("/");
})
// on l'exporte pour l'utiliser dans le app.js
module.exports = router;
// shop.js :
const express = require("express")
const router = express.Router();
router.get('/', (req, res, next) => {
res.send('<h1>Hello from the other side</h1>');
});
module.exports = router
// app.js :
const adminRoutes = require("./routes/admin");
const userRoutes = require("./routes/shop")
...
app.use(adminRoutes);
app.use(userRoutes);
// catch all routes
app.use((req, res, next) => {
res.status(404).send('<h1>Page not found ... </h1>')
});
Si nos routes commencent par le même début : /admin/add-product
// on le rajoute dans notre app.js :
app.use('/admin', adminRoutes);
On va creer un dossier 'views' dans notre projet avec deux fichiers .html