簡體   English   中英

NextJS 在部署到 Vercel 時拋出 404

[英]NextJS throwing 404 when deployed to Vercel

我有一個與 NextJS 一起使用的自定義快遞服務器。

當我在本地開發時一切正常,但是當我部署到 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();

自定義服務器的 Next.js 文檔:

無法在 Vercel 上部署自定義服務器,該平台是為 Next.js 設計的。

來源:自定義服務器

即使您無法部署自定義服務器,通常也不需要這樣做,因為 Next.js 支持使用/pages/api目錄的無服務器函數。

來源: API 路線

另請查看本指南,解釋如何將自定義 Next.js 服務器轉換為路由:

來源:服務器到路由指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM