API wurde in der Vercel-Bereitstellung nicht gefunden
P粉495955986
P粉495955986 2024-01-29 11:41:22
0
1
450

Ich habe meine Webanwendung mit Github auf Vercel bereitgestellt. Das Frontend ist geladen, aber API-Anfragen vom Frontend werden mit 404 nicht gefunden. Das ist übrigens eine MERN-App Das ist mein vercel.json

{
    "buildCommand": "cd client && npm install && ./node_modules/vite/bin/vite.js build",
    "outputDirectory": "client/dist",
    "framework": "vite",
    "rewrites": [
        {
            "source": "/api/(.*)",
            "destination": "/index.js"
        }
    ]
}

Das ist index.js

const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const cookieParser = require('cookie-parser');
const router = require('./router/router');
const setupCronJob = require('./cron');
const fs = require('fs');
require('dotenv').config();

const app = express();
app.use(express.json());
app.use(cookieParser());    // for reading cookies
const allowedOrigins = ['http://127.0.0.1:5173','https://cozy-stay.vercel.app'];
const corsOptions = {
    credentials: true,
    origin: allowedOrigins,
    methods: 'GET, POST, PUT, DELETE',
    allowedHeaders: 'Content-Type, Authorization, Cookie'
};

app.use(cors(corsOptions));

const port = process.env.PORT || 4000;

mongoose.set("strictQuery", false);

mongoose.connect(process.env.MONGO_URL, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    serverSelectionTimeoutMS: 10000,
}).then(()=> {
    console.log('Connected to database')
}).catch(err=>{
    throw err;
})
setupCronJob();
app.use('/api',router);
app.listen(port);

Dies ist das Verzeichnis img

Das Frontend ist bereits verfügbar, aber die API funktioniert nicht richtig. Ich denke, die API ist noch nicht geladen. Bitte hilf mir

P粉495955986
P粉495955986

Antworte allen(1)
P粉541551230

目前发生的情况似乎是 https://cozy-stay.vercel.app/api 路径请求转到前端服务器,而不是您期望的后端服务器:

Request URL: https://cozy-stay.vercel.app/api/all-places
Request Method: GET
Status Code: 404 
Remote Address: 76.76.21.9:443
Referrer Policy: strict-origin-when-cross-origin

修复01

您可以为前端和后端使用两个 vercel 应用程序:

  • cozy-stay.vercel.app
  • cozy-stay-backend.vercel.app - 将此用作前端应用程序中的后端服务器主机。

修复02

您可以运行负载均衡器,将所有带有 /api 前缀的请求发送到后端,将其他请求发送到前端。 IDK vercel 平台支持此功能。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage