Traitement des erreurs en affichant une page HTML statique

J’essaie d’append des fonctionnalités à mon gestionnaire d’erreurs non seulement en enregistrant le message dans la console, mais en redirigeant le navigateur du client vers une page HTML statique affichant un contenu textuel simple. Voici le gestionnaire existant:

var sql = require('msnodesql'); //store a connection to MS SQL Server----------------------------------------------------------------------------------- sql.open(connStr, function(err, sqlconn){ if(err){ console.error("Could not connect to sql: ", err); } else conn = sqlconn; //save the sql connection globally for all client's to use }); 

J’utilise express.js pour créer mon serveur Web. C’est le code côté serveur. Je veux que cela se produise en temps réel, dès que l’erreur se produit, le navigateur Web du client est redirigé.

EDIT: Je suppose que ce que je veux vraiment savoir, c’est comment redirect le navigateur du client vers une page de l’intérieur if(err) .

Vous pouvez utiliser un middleware qui vérifie l’état de la connexion pour chaque demande et rend un modèle approprié en fonction de l’état (au lieu d’utiliser res.render , vous pouvez également utiliser res.redirect ou res.sendfile , bien sûr):

 var sql = require('msnodesql'); var conn = null; sql.open(connStr, function(err, sqlconn) { if (err) { console.error("Could not connect to sql: ", err); conn = false; } else { conn = sqlconn; } }); // Express middleware that checks the connection state of the database // connection: active, not yet active, or failed. app.use(function(req, res, next) { // database connection not active yet if (conn === null || conn === undefined) { res.status(503); return res.render('not-active-yet'); } // database connection failed if (conn === false) { res.status(500); return res.render('db-connection-failed'); } // everything seems okay next(); }); 

EDIT: j’ai oublié de mentionner que vous devez inclure ce middleware très tôt dans la chaîne des middlewares, mais certainement avant n’importe lequel de vos itinéraires.