节点 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
参考:
我知道有多个版本,但我似乎找不到适合我的解决方案。 我的服务器似乎没有看到我的路由文件中的所有路由。它只匹配第一个。
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
参考: