Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🟢
Intermediaire 20 min Express

Deployer Express sur Railway

Pourquoi Deployer Express sur Railway ?

Deployer une application Express sur Railway peut offrir plusieurs avantages :

  1. Facilité d'accès : Les utilisateurs peuvent accéder à votre application depuis n'importe où avec un simple lien web.
  2. Évolutivité : Il s'agit d'une solution auto-échelonnante, ce qui signifie que le service se mettra automatiquement à l'échelle pour gérer une charge de travail accrue.

Par exemple, imaginez que vous développiez une application de gestion de projets pour votre entreprise. Vous voulez que tous les membres puissent accéder à cette application depuis n'importe où dans le monde. Deployer cette application sur Railway permettrait un accès facile et sécurisé.

Prerequis

Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :

  • Connaissance de base d'Express.js
  • Un compte sur Railway (gratuit avec une utilisation limitée)
  • Node.js et npm installés (v14 ou plus tard)

Outils à installer (versions)

  • Node.js v14.x
  • npm v6.x

Concepts fondamentaux

1. Créer un nouveau projet Express

Schéma mental : Un nouveau projet Express est composé d'un fichier app.js principal et d'autres fichiers comme index.js, package.json, etc.

// app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

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

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

2. Installer Railway CLI

Pour déployer sur Railway, vous devez d'abord installer le CLI (Command Line Interface).

npm install -g @railway/cli

Mise en pratique : projet fil rouge

Créer un simple serveur Express

Étape 1 : Initialiser votre projet Node.js

mkdir my-express-app
cd my-express-app
npm init -y

Étape 2 : Installer Express

npm install express

Étape 3 : Créer le fichier app.js

Créez un fichier app.js avec le contenu suivant :

// app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

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

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

Étape 4 : Lancer votre application local

node app.js

Allez sur http://localhost:3000 dans votre navigateur pour voir "Hello World!".

Créer une application de gestion des tâches

Étape 1 : Créer un fichier routes/tasks.js

Créez un fichier routes/tasks.js avec le contenu suivant :

// routes/tasks.js
const express = require('express');
const router = express.Router();

let tasks = [];

router.get('/tasks', (req, res) => {
    res.json(tasks);
});

router.post('/tasks', (req, res) => {
    const newTask = { id: Date.now(), text: req.body.text };
    tasks.push(newTask);
    res.status(201).json(newTask);
});

module.exports = router;

Étape 2 : Modifier app.js pour inclure les routes

Modifiez app.js pour inclure les routes de tâches :

// app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const taskRoutes = require('./routes/tasks');

app.use(express.json());
app.use('/api', taskRoutes);

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

Étape 3 : Tester l'API

Vous pouvez tester l'API en utilisant curl ou Postman :

## Créer une nouvelle tâche
curl -X POST http://localhost:3000/api/tasks -H "Content-Type: application/json" -d '{"text":"Acheter du lait"}'

## Obtenir toutes les tâches
curl http://localhost:3000/api/tasks

Erreurs frequentes et debugging

1. Erreur : PORT is not defined

Code incorrect :

// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(process.env.PORT, () => {
    console.log(`App listening at http://localhost:${process.env.PORT}`);
});

Code correct :

// app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

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

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

2. Erreur : Cannot find module 'express'

Code incorrect :

npm install express

Code correct :

npm install express --save

3. Erreur : SyntaxError: Unexpected token import

Code incorrect :

// app.js
import express from 'express';
const app = express();
app.listen(3000, () => {
    console.log('App listening at http://localhost:3000');
});

Code correct :

// app.js
const express = require('express');
const app = express();
app.listen(3000, () => {
    console.log('App listening at http://localhost:3000');
});

Pour aller plus loin

1. Utiliser des environnements de développement et de production

Vous pouvez utiliser des variables d'environnement pour différencier les configurations entre le développement et la production.

## .env.development
PORT=3000
MONGODB_URI=mongodb://localhost:27017/myapp-dev

## .env.production
PORT=80
MONGODB_URI=mongodb://produser:prodpass@prodserver/myapp-prod

2. Utiliser des services de base de données

Railway offre des intégrations faciles avec des services de base de données comme MongoDB, PostgreSQL, etc.

3. Déployer sur plusieurs environnements (développement, staging, production)

Vous pouvez configurer Railway pour déployer votre application sur différents environnements en créant des branches distinctes dans votre dépôt Git.

Défi pratique

Développez une application simple de gestion de notes (notes à faire) avec les fonctionnalités suivantes :

  • Création d'une nouvelle note
  • Affichage de toutes les notes
  • Suppression d'une note

N'oubliez pas de suivre les mêmes étapes que précédemment, en modifiant le code pour ajouter ces nouvelles fonctionnalités.


Ce tutoriel devrait vous aider à déployer une application Express sur Railway et à développer des applications plus complexes.

Besoin d'aide sur Express ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Qu'est-ce que Railway et comment puis-je utiliser cela pour déployer mon application Express ?
Railway est une plateforme en tant qu'outil de déploiement qui permet aux développeurs de déployer rapidement leurs applications. Pour déployer une application Express sur Railway, vous devez d'abord créer un compte sur le site web de Railway, connecter votre projet Git et suivre les instructions pour déployer.
Comment configurer mon fichier de configuration pour que mon application Express fonctionne correctement sur Railway ?
Pour que votre application Express fonctionne correctement sur Railway, vous devez vous assurer que toutes les variables d'environnement nécessaires sont définies dans le fichier .env. Vous devrez également configurer les paramètres de base de données et d'autres services requis par votre application.
Puis-je utiliser des packages tiers comme 'nodemon' ou 'dotenv' sur Railway ?
Oui, vous pouvez utiliser des packages tiers dans votre projet Express déployé sur Railway. Vous devez simplement installer ces packages localement et les inclure dans votre fichier package.json pour qu'ils soient installés lors du déploiement.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.