【发布时间】:2020-08-17 15:22:28
【问题描述】:
我有一个与 NextJS 一起使用的自定义 express 服务器。
当我在本地开发时一切正常,但是当我部署到 Vercel 时,每当我尝试访问我的后端 API 时都会遇到 404。
可能出了什么问题?这是我的server.ts:
import express from 'express';
import next from 'next';
import bodyParser from 'body-parser';
import { connectDbs } from './config/db';
import { listingsRouter } from './routes';
const PORT = process.env.PORT || 3003;
const dbs = ['mydb'];
const dev = process.env.NODE_DEV !== 'production';
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();
const applyMiddleware = (app) => {
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
};
const applyRoutes = (app) => {
app.use('/api/listings', listingsRouter);
};
const startServer = async () => {
await nextApp.prepare();
const app = express();
applyMiddleware(app);
applyRoutes(app);
app.get('*', (req, res) => handle(req, res));
await connectDbs(dbs);
app.listen(PORT, () => console.log(`App listening on port ${PORT}`));
};
startServer();
【问题讨论】:
-
您的代码有效。似乎您需要联系 Vercel 支持。 digitalocean.com/community/questions/…
-
这是自定义配置。我认为vercel找不到路线。我认为您必须在 vercel.json 中配置路由。 vercel.com/docs/configuration#project/routes
标签: javascript reactjs next.js vercel