我有两条路线。
app.get('/api/v1/bucket/:bucket_name', (req, res) => {
queries.getAllFilesFromSpecificBucket(req.params.bucket_name).then(data => {
res.json(data);
});
})
app.get('/api/v1/bucket/:file_name', (req, res) => {
queries.getSpecificFileByName(req.params.file_name).then(data => {
res.json(data);
});
})
除了参数名之外,它们的路径是相同的api/v1/bucket/。这里,我的问题是,当我尝试使用file_name参数获取路由时,总是使用bucket_name参数调用第一条路由。 请帮帮忙
简单的答案是只需更改一条api路由。 另一种选择是组合路由并使用查询参数
app.get('/api/v1/bucket/:name', (req, res) => {
if (req.query.bucket === "true") {
//DO bucket logic
} else {
// DO file logic
}
})
要使其工作,您需要将前端路由更新为如下所示
const getBucket = `/api/v1/bucket/${bucketName}?bucket=true`
const getFile = `/api/v1/bucket/${fileName}?bucket=false` // NOTE you can just remove the ?bucket=false from this line