Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 显示静态HTML页面时的错误处理_Node.js_Express - Fatal编程技术网

Node.js 显示静态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,

我试图向错误处理程序添加功能,不仅将消息记录到控制台,而且将客户端浏览器重定向到一个静态HTML页面,该页面将显示一些简单的文本内容。以下是现有的处理程序:

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();
});