2016-12-22 8 views
0

私はExpressの関数redirectexpress().get(またはそれに相当するもの)の外に、そしてMongoDBの関数connectの中で、データベースへの接続時にエラーが発生した場合に使用したいと考えています。MongoDBコールバック内のJade/Pugファイルにリダイレクトする方法は?

このリダイレクト先はJade/Pugファイルです。そのため、Pugの関数renderを使用する必要があります。

私の質問はです。これを行うにはどうすればredirectを使うことができますか?実際、resというオブジェクトはありません。なぜなら、私は関数express().getを使用していないからです。

ここに私が書いたコードがあります。それは達成されなければならないが、私はどのようにわからない。このルートではないので

const express = require('express'); 
const app = express(); 
const mongo_client = require('mongodb').MongoClient; 
mongo_client.connect("mongodb://localhost:27016/my_db", (error, database) => { 
     if(error) { // If an error has been raised while connecting to the database 
      app.locals.error = error; 
      app.render('db_error.jade', (error, rendered) => { // We generate the HTML code and pass it to a redirection 
       // But how ??? 
       if(error) { 
        throw error; 
       } 
      }); 
      throw error; 
     } 

答えて

0

さらに重要なのは、あなたは、要求を持っていません。あなたの応答を返すものは何もないだけでなく、最初は応答を求める人はいません。これは、誰のWebブラウザがまったく関わっていないうちに起こっていることです。

データベースがダウンしているときにページを表示するには、すべてのリクエストでmiddlewareを使用して、アプリがMongoに接続されているかどうかを確認し、必要に応じてエラーページにリダイレクトする必要があります。

関連する問題