Вы не могли бы использовать тот же глагол (get, post, put ..
) за тот же маршрут. Вы можете использовать те же самые verb
для разных route
или же route
для разных verb
.
в вашей задаче используется
GET: '/channels/:username' and
GET: '/channels/:channelname'
оба действуют как одно и то же, потому что, когда вы запрашиваете на /channels/somename
сюда сайта клиента, то действительны для обоих маршрутов, потому что username
может быть somename
или channelname
может быть somename
.
Чтобы разграничить два маршрута, необходимо изменить свой маршрут. как
GET: '/channels/user/:username' // that different from /channels/:channelname
для node.js
и express
вы можете использовать как:
var router = express.Router();
router.route('/place')
.get(placeController.getPlaces)
.post(placeController.createPlace);
router.route('/place/:placeId') // same route for different verb
.get(placeController.getPlaceById)
.put(placeController.updatePlaceById)
.delete(placeController.deletePlaceById);
router.route('/hotel/:placeId') // here :placeId params name same for both but /hotel differentiate from /place
.get(hotelController.getHotelById)
.put(hotelController.updateHotelById)
.delete(hotelController.deletHotelById);
но параметр отличается .. один «: ChannelName», а другой «: имя пользователя» –
В вашем примере да, но представьте, если у вас есть пользователь под названием «Джон» и канал «Джон». Вы вызовете маршрут:/channels/John, и вы не сможете это обработать. – Max
Хм, вы правы. Если вы не проверите всех пользователей, прежде чем создавать новый канал, который будет любопытным дорогостоящим lol .. хорошо, тогда создаст еще один маршрут, как сказал. Спасибо :) –