Node.js 显示静态HTML页面时的错误处理
我试图向错误处理程序添加功能,不仅将消息记录到控制台,而且将客户端浏览器重定向到一个静态HTML页面,该页面将显示一些简单的文本内容。以下是现有的处理程序:Node.js 显示静态HTML页面时的错误处理,node.js,express,Node.js,Express,我试图向错误处理程序添加功能,不仅将消息记录到控制台,而且将客户端浏览器重定向到一个静态HTML页面,该页面将显示一些简单的文本内容。以下是现有的处理程序: var sql = require('msnodesql'); //store a connection to MS SQL Server----------------------------------------------------------------------------------- sql.open(connStr,
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
});
我正在使用express.js创建我的web服务器。这是服务器端代码。我希望这种情况能够实时发生,一旦发生错误,客户端的web浏览器就会被重定向
编辑:我想我真正想知道的是,如果(错误)您可以使用中间件检查每个请求的连接状态,并根据状态呈现适当的模板,如何将客户端浏览器从内部重定向到页面(当然,您也可以使用
res.redirect
或res.sendfile
,而不是使用res.render
):
编辑:忘记提到您需要在中间件链的早期包含此中间件,但肯定是在您的任何路由之前。无论出于何种原因,该页面仍然不会在浏览器中呈现。当前页面仍然可见。@gjw80查看我的编辑。您需要在早期包含中间件。sql.open h安装中间件之后?@gjw80
app.render
无法帮助您完成此操作。您应该开始查看实时通知实现,就像您希望这样做一样。@gjw80是可能的,但您还需要监视连接的断开事件
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();
});