我正在嘗試制作一個網站,向您展示該國所有不同城市的所有餐館。我為使用引數將您重定向到餐廳頁面的餐廳添加了一條路線。
router.get('/:name',checkUser, async (req, res) => {
try {
const wila = await wilaya.findOne({nom : req.params.name})
const re = await restaurant.find({ville : wila.nom})
res.render('html/villeDetails', {
wilay: wila,
title : wila.nom,css : "villeDetails",
resto : re
})
} catch {
res.redirect('/')
}
})
還有一條同樣使用params的路線帶你到城市詳情頁面
router.get('/:id',checkUser, async (req, res) => {
try {
console.log('here')
const resto = await restaurant.findById(req.params.id)
comment.find({resId : req.params.id})
.then((result) => {
res.render('html/restaurantDetails', {
res: resto,
title : resto.nom,
css : "restaurantDetails",
comm : result
})
})
} catch {
res.redirect('/')
}
})
問題是只有餐廳路線在作業,當我洗掉餐廳路線時,城市路線開始作業。我不知道為什么會這樣。
uj5u.com熱心網友回復:
/:name并且/:id都在同一條路線上(/)。我注意到,當這種情況發生時,只有首先看到的路線 ( /:name) 會被識別。您可以嘗試更改其中一條路線,例如/:name餐廳路線和/restaurant/:id城市路線。
uj5u.com熱心網友回復:
是的。當您使用命名路徑引數/:id時,/:name或者/:post_id您正在做什么 id 告訴快速路由器您將在 URI 的該段中傳遞“某些東西”,并且您希望將其存盤在具有該名稱的變數中。它不知道您傳遞的是 id 還是 name 或其他東西。為此目的使用嵌套路由。我建議您查看本指南
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/475827.html
標籤:javascript 节点.js 表示 参数 路线
下一篇:僅選擇單擊的按鈕JQuery
