[Node.js] Serveur express qui n'affiche pas les pages Web

Le problème exposé dans ce sujet a été résolu.

— DEBUT - Edit : Sujet résolu

La ligne app.use(express.static(__dirname)); semble devoir être placée avant tout app.get et le code qui suit fonctionne bien. (autre modif : pas de "404" dans l’appel redirect('page_not_found.html')).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const express = require('express');
const app = express();
app.use(express.static(__dirname));

app.get("/", (req, res) => {
    res.redirect('index.html');
});

app.get('*', (req, res) => {
    res.redirect('page_not_found.html')
});


app.listen(80, 'localhost');

— FIN - Edit : Sujet résolu

Bonjour à tous,

J’essaie de mettre en place un serveur Node.js à l’aide du paquetage Express en utilisant la fonction redirect(status, path).

Pour l’instant, je gère juste la page d’accueil et les cas de pages non-joignables (erreur 404).

Lorsque je désactive la gestion des pages non-joignables, l’accueil s’affiche correctement (ie. : la page index.html s’affiche quand l’internaute se rend sur "localhost" ou "localhost/index.html"). Mais si je l’active, le message "Not Found. Redirecting to page_not_found.html" s’affiche pour les deux URL "localhost" et "localhost/index.html".

Or il faudrait cumuler les deux. C’est-à-dire que l’internaute charge la page d’accueil avec "localhost" et "localhost/index.html", et qu’il charge la page "page_not_found.html" si l’URL entrée ne correspond à aucun fichier du serveur.

Source

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
const express = require('express');
const app = express();

app.get("/", (req, res) => {
    res.redirect('index.html');
});

app.get('*', (req, res) => { // Deactivate (= comment this) to test the bug
    res.redirect(404, 'page_not_found.html')
});


app.use(express.static(__dirname));
app.listen(80, 'localhost');

PS : je tiens vraiment à utiliser les fonctions get et redirect, donc pas de sendFile ou autre.

Merci à vous, bonne journée et joyeux Noël :magicien:

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte