Bonjour,
Voila je rencontre un petit problème avec mon code. En faite j'ai du mal à gérer mes routes avec express js
fichier index.html ( formulaire)
<form method="post" action="post.html">
<tr>
<td>Identifiant:</td>
<td colspan="2">Mot de passe:</td>
</tr>
<tr>
<td><input class="textbox" type="text" name="pseudo"/></td>
<td><input class="textbox" type="password" name="mdp"/></td>
<td><input class="button" type="submit" value="GO"></td>
</tr>
</form>
fichier de route géré avec express (app.js)
var express = require('express'); //Module express requis (Framework node js)
var path = require('path'); //Module Path requis, pour les chemins de fichier
var http = require('http');
var bosyParser = require("body-parser");
var util = require('util');
var app = express(); //Instantiation du serveur
app.set('port', process.env.PORT || 8080) //Port d'écoute
app.use(bosyParser.urlencoded({extended: true}));
app.use(express.static(path.join(__dirname, '../www'))); //Pour pouvoir utiliser des chemins relatifs dans les fichier utilisés
http.createServer(app).listen(app.get('port'), function(){
console.log('Serveur express ouvert au port ' + app.get('port'));
}); //Création du serveur et écoute du port 8080
//Fonction qui gère le formulaire de connexion
app.post('/post.html', function(request,response){
var name = request.body.pseudo;
console.log('La variable vaut = ' + name);
next();
response.sendFile(path.resolve(__dirname + '/../www/acceuil.html')); //Envoye la page d'accueil
})
//On renvois le fichier index.html lorsque l'on cherche le chemin /
app.get('/', function(req, res){
console.log('ok');
res.sendFile(path.resolve(__dirname + '/../www/index.html'));
})
//Création d'une autre route 'connexion.html (une fois le client connecté)
En faite je veux changer la route post de 'post.html' et la ridiriger dans la route get '/' ou une autre route get 'connexion.html'
suivant ce que renvois la base de donnée ( en gros si le client existe ou pas)
J'ai utilisé la méthode 'next()' d'express, mais ça ne me redirige pas et cela fait planter mon appli.
Est-ce que quelqu'un serait comment s'y prendre pour que ma route post.html redirige sur / dans certains cas?
Merci d'avance
next() ne redirige pas, c'est pour faire passer une valeur de middleware en middleware, tu doit utiliser response.redirect('/')
tien un extrait tiré de la doc d'express:
res.redirect([status,] path) :
Redirects to the URL derived from the specified path, with specified status, a positive integer that corresponds to an HTTP status code . If not specified, status defaults to “302 “Found”.
res.redirect('/foo/bar');
res.redirect(301, '/foo/bar');
Génial ça semble être ce que je veux, je vais tester ça dès que je peux me loguer sur ma machine.
Merci Defy