Я создал веб-страницу своего портфолио с помощью next. js теперь мне нужно его протестировать. для тестирования сервера express я использую supertest. Но проблема в том, что мне нужно рефакторинг express, чтобы использовать его. Потому что супертесту необходимо получить доступ к app () перед прослушиванием.
Я начал так, как раньше реализовал в приложении node.js. Поместите код express в app. js и вызовите его в index. js.
const express = require("express");
const server = express();
const authService = require("./services/auth");
const bodyParser = require("body-parser");
//put all the middlewares here
module.exports = server;
, а затем в index. js
const server = require("express")();
// const { parse } = require("url");
const next = require("next");
const routes = require("../routes");
const path = require("path");
require("./mongodb");
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
// const handle = app.getRequestHandler(); //this is built in next route handler
const handle = routes.getRequestHandler(app);
app
.prepare()
.then(() => {
const server = require("./app");
//I required this outside too but it did not solve the issue
server.listen(3000, (err) => {
if (err) throw err;
console.log("> Ready on http://localhost:3000");
});
})
.catch((ex) => {
console.error(ex.stack);
process.exit(1);
});
с этим настроил, express слушает, я могу подключиться к mongodb, во время запуска проблем нет.
Когда я запрашиваю localhost: 3000, от localhost нет ответа, он крутится до тайм-аута