如何使用一个具有两种类型值的参数导航到两条不同的路线?

问题描述 投票:0回答:1

我正在构建一个 API,并且正在研究从数据库中查找条目的路线。 主路线到支路线是

/api/v1/entries/
我想从这里转到两种不同的路线,一种是通过“
user_id
”获取用户的条目,一种是通过“
date
”获取特定日期的条目

我知道我是否会将路线写为

router.get("/:user_id", getEntriesOfUser);

router.get("/:date", getEntriesOfDate);

它总是走第一条路线,所以我尝试的是

router.get("/user/:user_id", getEntriesOfUser);

router.get("/date/:date", getEntriesOfDate);

上面的方法对我有用,但我发现它很混乱,因为我必须使用“

/user
”作为中间路径,因为我的 API 中也有一个路径
/users/user/:id
路径。 另外我不想在
user
路线中使用
entries

有什么办法可以作为第一种方法吗?

javascript express rest routes parameters
1个回答
0
投票

有一个例子:

const express = require('express');
const router = express.Router();

// Define the route to fetch entries
router.get("/", (req, res) => {
    const userId = req.query.user_id;
    const date = req.query.date;

    if (userId) {
        // Logic: Fetch entries based on userId
        return res.json({ message: `Fetching entries for user ID: ${userId}` });
    } else if (date) {
        // Logic: Fetch entries based on date
        return res.json({ message: `Fetching entries for date: ${date}` });
    } else {
        return res.status(400).json({ error: "Please provide a user_id or date." });
    }
});

module.exports = router;
  • 获取特定用户的条目:
GET /api/v1/entries?user_id=123
  • 获取特定日期的条目:
GET /api/v1/entries?date=2024-08-25
© www.soinside.com 2019 - 2024. All rights reserved.