I am trying to deploy my Node.js Express application to Vercel. My folder structure looks like this:
Index.js:
configDotenv();
const app = express();
const port = process.env.PORT || 8000;
connectDB();
connectCloudinary();
app.use(cors());
app.use(express.json());
app.get("/", (req, res) => res.send("API Working"));
app.use("/api/song", songRouter);
app.use("/api/album", albumRouter);
app.listen(port, () => console.log(`Server Port: ${port}`));
songRoute.js
const songRouter = express.Router();
songRouter.post(
"/add",
upload.fields([
{ name: "image", maxCount: 1 },
{ name: "audio", maxCount: 1 },
]),
addSong
);
songRouter.get("/list", listSong);
songRouter.delete("/remove", removeSong);
export default songRouter;
vercel.json
{
"version": 2,
"builds": [
{
"src": "./index.js",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/api/song/(.*)",
"dest": "/index.js"
},
{
"src": "/api/album/(.*)",
"dest": "/index.js"
},
{
"src": "/(.*)",
"dest": "/index.js"
}
]
}
When I deploy, I encounter errors related to routing and API handling. Can someone help me understand how to correctly configure the vercel.json file for my project?