/express-bootstrap

The most basic Express.js bootstrap project.

Primary LanguageTypeScriptMIT LicenseMIT

README

Ce repository a été conçu comme la base de ce que sera votre projet Express.js une fois le cours terminé. Prenez soin de lire chaque étape et ne manquez pas de feuilleter les pages de documentation qui vous sont partagées.

Environnement de développement

  1. Télécharger puis installer Node.js (LTS, i.e. Long-Term Support)
  2. Installer le package TypeScript globalement à l'aide de npm :
npm install -g typescript

Ressources :


Setup du projet

Initialisation

  1. Créer un dossier VIDE en local sur sa machine
  2. Initialiser le projet à la racine (donc dans le dossier que l'on vient de créer) avec npm :
npm init -y # Génère un fichier package.json
  1. Initialiser TypeScript au sein du projet :
tsc --init # Génère un fichier tsconfig.json

Ressources :

Dépendances

Pour utiliser Express.js mais aussi pour formatter notre code ou même le tester, il nous faut des packages externes. Certains de ces packages ne sont utiles que dans le cadre du développement, tandis que d'autres sont utiles même en production :

  • on appelle dependencies les dépendances essentielles au fonctionnement du projet en production
  • on appelle dev dependencies les dépendances nécessaires uniquement au développement du projet

Ce projet dépend initialement de deux dependencies :

  • dotenv sert à charger des variables d'environnement à partir d'un fichier
  • express sert à créer des applications web de manière simple et rapide
  • body-parser sert à analyser le corps des requêtes HTTP reçues par le serveur

Côté développement, nous allons avoir besoin de plusieurs dev dependencies :

  • ts-node-dev sert à compiler les fichiers TypeScript à la volée et en continu
  • jest est un framework de test qui permet d'écrire et d'exécuter des tests en JavaScript
  • ts-jest sert à tester des fichiers TypeScript via l'utilisation de jest
  • prettier (optionnel) sert à appliquer des règles de formatage cohérentes à votre code

Sans oublier tous les packages préfixés par @types : @types/express, @types/node, @types/jest et @types/body-parser. Ces packages spéciaux fournissent des informations de typage pour des packages JavaScript qui ne sont pas écrits en TypeScript nativement.

Pour installer tous ces packages, utilisez les commandes suivantes :

npm install dotenv express body-parser
npm install -D ts-node-dev jest ts-jest prettier @types/express @types/node @types/jest @types/body-parser

Ressources :

Configuration

Toujours un peu pénible de tout configurer mais en fin de compte c'est très rapide, don't worry.

TypeScript

Ouvrez votre tsconfig.json puis décommentez la ligne outDir pour la modifier :

"compilerOptions": {
    "outDir": "./dist",
}

ts-node-dev

Ouvrez votre package.json et ajoutez une ligne à l'objet scripts :

"scripts": {
    "dev": "npx ts-node-dev src/app.ts",
}

Jest

  1. Ouvrez votre package.json et remplacez la ligne test de l'objet scripts :
"scripts": {
    "test": "jest --passWithNoTests",
}
  1. Créez un fichier jest.config.js à la racine de votre projet :
module.exports = {
    preset: 'ts-jest',
    testEnvironment: 'node',
    testPathIgnorePatterns: ['/dist/'],
    verbose: true,
};

Prettier (optionnel)

  1. Créez un fichier .prettierrc à la racine de votre projet avec la configuration suivante :
{
    "singleQuote": true,
    "tabWidth": 4,
    "trailingComma": "all"
}
  1. Ouvrez votre package.json et ajoutez une ligne à l'objet scripts :
"scripts": {
    "format": "prettier --write \"src/**/*.ts\"",
}

Notre application

Il est temps de concrétiser tout ce bazar et d'écrire nos premières lignes de code.

  1. Créez un dossier src à la racine de votre projet et ajoutez-y un fichier app.ts :
import express from 'express';

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

app.listen(port, () => console.log(`> Listening on port ${port}`));
  1. Dans votre terminal utilisez la commande suivante :
npm run dev # Exécute le script 'dev' de l'objet 'scripts'
  1. Vous devriez avoir un output à peu près ressemblant à celui-ci :
[INFO] 16:52:33 ts-node-dev ver. 2.0.0 (using ts-node ver. 10.9.1, typescript ver. 5.1.6)
> Listening on port 3000

Félicitations ! 🥳🎉 Vous avez créé votre application back-end !