Как вернуть после рендеринга шаблон Jade в Express.JS? - PullRequest
1 голос
/ 02 августа 2011

Пожалуйста, рассмотрите простой маршрут express.js:

app.get("/test", function(req, res) {
   if(condition1) {
      res.render("foo", {
          title : "Test"
      });
   }

   console.log("HERE");

   if(condition2) {
      res.render("bar", {
          title : "Test2"
      });
   }
});

Теперь в этом надуманном примере иногда условие1 будет истинным, а иногда - условие2. Однако в случае, если условие1 истинно, элемент управления проходит и печатает строку console.log, а затем завершается ошибкой, когда сталкивается с другим средством рендеринга с помощью:

Ошибка: невозможно установить заголовки после их отправки.

Как будто ответ должен быть закончен или что-то в этом роде, но я пробовал это, но безрезультатно. Любая помощь будет оценена. Благодаря.

Ответы [ 2 ]

0 голосов
/ 10 августа 2011

Я просто использую return res.render().

Странно, когда вы говорите, что это не работает, потому что return действительно должен остановить выполнение остальной функции.

0 голосов
/ 02 августа 2011

Просто используйте else, чтобы только один путь кода приводил к рез. res.send уже завершает ответ, но вы пытаетесь отправить другой ответ с другим res.render

Просто измените второе значение if на else if и переместите код, чтобы учесть это, то есть переместите console.log над всеми условиями.

Или, я полагаю, вы можете просто поставить оператор return после res.render.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...