如何在 Heroku 上的两个不同端口上同时部署 Next.js 和 Express 服务器

2023-12-13

这是我目前面临的部署挑战。我在谷歌上进行了广泛的搜索,并尝试了一些但没有运气。

我有应用程序 A,它使用express作为服务器在端口 5000 上提供服务。然后我有应用程序 B,它使用 Next 作为服务器在端口 3000 上提供服务。我编写了一些代码将这两个应用程序集成为一个,我正在尝试将其部署到 Heroku 上。我不断收到部署失败的消息。这是我的 package.json:

"scripts": {
"start": "concurrently \" npm run dev \" \" next \" ",
....

或者,您可以使用 Next.js自定义服务器功能。只需先定义您的 API 路由,然后放置expressApp.all('*', nextHandler)最后,以便 Next 捕获 API 端点未捕获的所有内容。

const express = require('express');
const next = require('next');

const APIRouter = require('./routes');

const dev = process.env.NODE_ENV !== 'production';
const hostname = 'localhost';
const port = 3000;

const nextApp = next({dev, hostname, port});
const nextHandler = nextApp.getRequestHandler();

const expressApp = express();

nextApp.prepare().then(() => {
  expressApp.use(APIRouter());
  expressApp.all('*', nextHandler);
  expressApp.listen(port, () => {
    console.log(`App listening on port ${port}`);
  });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Heroku 上的两个不同端口上同时部署 Next.js 和 Express 服务器 的相关文章

随机推荐