节点 API - 无法获取 /url

Node API - Cannot GET /url

我知道有多个版本,但我似乎找不到适合我的解决方案。 我的服务器似乎没有看到我的路由文件中的所有路由。它只匹配第一个。

index.js

import express from 'express'
import mongoose from 'mongoose'
import dotenv from "dotenv";

import tweetRoutes from "./src/routes/tweetRoutes.js";

dotenv.config();

const app = express();
const PORT = process.env.PORT || 5000;

app.use(express.json());

// Routes
app.use("/api/tweets", tweetRoutes);

// DB connection
mongoose.connect(process.env.DB_URI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});
mongoose.connection.on("connected", () =>
    console.log("DB Connection Established!")
);


// Server
app.listen(PORT, () => console.log(`Server listening on: ${PORT}`))

tweetRoutes.js

import { Router } from 'express'
import {
    createTweet,
    fetchTweets,
    fetchTweet,
    updateTweet,
    deleteTweet,
} from "../controller/tweetController.js";

const router = Router();

router.get("/", fetchTweets);
router.get("/:id", fetchTweet);
router.post("/create-tweet", createTweet);
router.patch("/:id", updateTweet); // Not working
router.delete("/:id", deleteTweet); // Not working

export default router;

在这种情况下,唯一可访问的路径是第一个,fetchTweets。即使当我使用 fetchTweet 路由传递 ID 参数以获取单个推文时,它也会路由到第一条路由。其他路线return一404.

我做错了什么?非常感谢任何帮助。

感谢您提供用于测试 fetchTweet 路由的 url。

您应该使用以下路径来到达所需的路线:

127.0.0.1:3000/api/tweets/61b9af93e88ee4de51c28b95

参考: