Создано базовое приложение с использованием NextJs и Express, которое отлично работает локально. Однако после развертывания в Heroku я не могу получить доступ ни к одной из конечных точек, определенных в Express. Несмотря на то, что они доступны в моей локальной версии.
Вы увидите ниже, что я поместил тестовый маршрут, который должен отобразить строку 'test' на экране. Опять же, это прекрасно работает локально, но возвращает 404 на heroku.
const express = require("express");
const next = require("next");
const bodyParser = require("body-parser");
const { requestWeather } = require("./helpers");
const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();
app.prepare().then(() => {
const server = express();
server.use(bodyParser.urlencoded({ extended: false }));
server.use(bodyParser.json());
server.post("/api/weather", async (req, res) => {
const { lat, long } = req.body;
const weather = await requestWeather({ lat, long });
res.send(JSON.stringify({ weather }));
});
server.get("/test", (req, res) => {
res.send('test');
});
server.all("*", (req, res) => {
return handle(req, res);
});
server.listen(port, err => {
console.log(`LOG: HHEEEEE`);
if (err) throw err;
console.log(`> Ready on http://localhost:${port}`);
});
});
Я считаю, что проблема может заключаться в том, что моя команда package.json:
"start": "next start -p $PORT"
Когда на самом деле это должно ссылатьсяфайл server.js. Однако я не могу добиться какого-либо прогресса в этом.