This is an old revision of the document!
Scopul sedintei:
Puteti pleca de la urmatorul schelet de cod. Sunt implementate urmatoarele:
In scriptul de start se initializeaza serverul. Deoarece express se bazeaza pe conceptul de middlewares, adica lanturi de functii, initializarea nu inseamna nimic mai mult decat mai multe functii ale unor pachete puse impreuna, la inceput.
const express = require('express'); // pachet folosit pentru partea de REST API server const morgan = require('morgan'); // pachet folosit pentru formatarea log-urilor const helmet = require('helmet'); // pachet folosit pentru adaugarea unor headere de securitate const createError = require('http-errors'); // pachet folosit pentru trimiterea de erori require('express-async-errors'); // pachet folosit pentru captarea erorilor pe rute require('log-timestamp'); // pachet folosit pentru injectarea timpului in momenul in care se da console.log() const routes = require('./routes.js'); // fisierul (scris de noi) care are configurate toate rutele const app = express(); // instantierea serverului efectiv app.use(helmet()); // adaugarea primului middleware, cel oferit de pachetul helmet app.use(morgan(':remote-addr - :remote-user [:date[web]] ":method :url HTTP/:http-version" :status :res[content-length]')); // adaugarea celui de-al doilea middleware, cel oferit de pachetul morgan app.use(express.json()); // adaugarea celui de-al treilea middleware, cel care extrage obiecte JSON din corpul cererilor. Util pentru POST si PUT app.use(express.urlencoded({ extended: false })); // adaugarea celui de-al patrulea middleware, cel care extrage obiecte x-www-urlencoded din corpul cererilor. Util pentru POST si PUT, daca nu se foloseste JSON app.use('/api', routes); // adaugarea rutelor configurate de noi in lantul de rute, cu radacina /api app.use((err, req, res, next) => { console.error(err); let status = 500; let message = 'Something Bad Happened'; if (err.httpStatus) { status = err.httpStatus; message = err.message; } return next(createError(status, message)); }); // adaugarea unui middleware ce intercepteaza erorile si foloseste createError pentru incapsularea lor const port = process.env.PORT || 80; // stabilirea portului pe care va rula serverul in functie de variabila de mediu. Daca nu exista, este implicit 80 app.listen(port, () => { console.log(`App is listening on ${port} and running on ${process.env.NODE_ENV} mode`); }); // deschiderea serverului pe portul stabilit