Промежуточное ПО ExpressJS, при котором NextJS не вызывается

Как следует из названия, у меня есть приложение next.js, которое использует ExpressJS в качестве настраиваемого сервера. Я установил простое промежуточное ПО для ведения журнала, но оно вообще не вызывается.

const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();

app.prepare().then(() => {
  const server = express();
  server.use(helmet());
  server.use(bodyParser.json());

  // >>> this is not being called <<<
  server.use(function(req, res, next) {
    console.info("LOGGED");
  });

  server.get("/", (req, res) => {
    const indexPage = "/";
    app.render(req, res, indexPage);
  });
  server.get("/about", (req, res) => {
    const aboutPage = "/about";
    app.render(req, res, aboutPage);
  });
  server.post("/search", [
    checkSpotifyToken,
    async (req, res) => {
      const { selectedMovie } = req.body;
      try {
        const playlistId = await buildPlaylist(selectedMovie);
        res.json({ success: true, playlistId });
      } catch (error) {
        console.info(error);
        res.json({ success: false });
      }
    }
  ]);
  server.get("*", (req, res) => {
    return handle(req, res);
  });
  server.listen(3001, err => {
    if (err) throw err;
  });
});

какую ошибку вы получаете?

Aaqib 23.03.2018 19:45

Я не получаю сообщения об ошибке, я ожидал увидеть распечатанный LOGGED, но это не так.

Tekeste Kidanu 23.03.2018 19:47

Но ваши маршруты, такие как /about, отрисовываются должным образом?

Ben Nyberg 23.03.2018 20:08

Это верно.

Tekeste Kidanu 23.03.2018 20:10

Это очень странно. От того, что у вас здесь есть, я ожидал, что вы увидите журнал, но не попадете ни на один из маршрутов, потому что вы не вызываете next() в своей функции ведения журнала. Это то, что я вижу, когда запускаю аналогичный код локально. Но, возможно, стоит попробовать добавить вызов next(); после вашего console.info

Ben Nyberg 23.03.2018 20:20

Я вызываю const server = express (); вне функции app.prepare () сразу после того, как вы установите const handle = app.getRequestHandler.

Spencer Bigum 23.03.2018 22:16

Что это за const app = next({ dev });? Похоже, у вас есть и app, и server, и вы, кажется, используете их в некоторой степени взаимозаменяемо, но это не одно и то же.

jfriend00 24.03.2018 01:08

@ jfriend00 из фреймворка NextJS. github.com/zeit/next.js

Tekeste Kidanu 26.03.2018 22:18

У меня такая же проблема! Хотите знать, не проблема в том, как настроена среда разработки?

Barrard 04.02.2019 13:29

не могли бы вы удалить server.use(bodyParser.json());, потому что у меня аналогичная проблема.

Naxos84 12.06.2020 14:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
10
497
0

Другие вопросы по теме