2016-12-22 8 views
0

Я хотел бы использовать функцию Express 'redirect вне функции express().get (или что-то подобное), а также в функции MongoDB connect, если при подключении к базе данных возникает ошибка.Как перенаправить файл Jade/Pug в обратный вызов MongoDB?

Этот пункт назначения перенаправления является файлом 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

Что еще более важно, вы не имеете запрос, потому что это не в маршруте. Мало того, что откликаться не на что, никто не просит ответа в первую очередь. Это все происходит до того, как любой веб-браузер вообще задействован.

Если вы хотите показать страницу, когда база данных не работает, вам нужно будет использовать middleware по всем запросам, чтобы узнать, подключено ли приложение к Mongo и при необходимости перенаправляется на вашу страницу ошибок.