Как следует из названия, у меня есть приложение 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;
});
});
Я не получаю сообщения об ошибке, я ожидал увидеть распечатанный LOGGED, но это не так.
Но ваши маршруты, такие как /about, отрисовываются должным образом?
Это верно.
Это очень странно. От того, что у вас здесь есть, я ожидал, что вы увидите журнал, но не попадете ни на один из маршрутов, потому что вы не вызываете next() в своей функции ведения журнала. Это то, что я вижу, когда запускаю аналогичный код локально. Но, возможно, стоит попробовать добавить вызов next(); после вашего console.info
Я вызываю const server = express (); вне функции app.prepare () сразу после того, как вы установите const handle = app.getRequestHandler.
Что это за const app = next({ dev });? Похоже, у вас есть и app, и server, и вы, кажется, используете их в некоторой степени взаимозаменяемо, но это не одно и то же.
@ jfriend00 из фреймворка NextJS. github.com/zeit/next.js
У меня такая же проблема! Хотите знать, не проблема в том, как настроена среда разработки?
не могли бы вы удалить server.use(bodyParser.json());, потому что у меня аналогичная проблема.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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