Вы не можете иметь один и тот же маршрут с тем же параметром resaruants.js
маршрут равен точно такой же, как allTheRestaruants.js
, он будет работать, только если:
const resRoute = require('./routes/resaruants')
const resAllRoute = require('./routes/allTheRestaruants')
...
app.use('/restaurant', resRoute)
app.use('/restaurant-all', resAllRoute)
дает вам 2 маршрута.
Но, я предполагаю, что вы пытаетесь создать REST API, идея в том, что, когда вы передаете нет id
, вы автоматически получаете все, поэтому нет нужно указать все, например:
простой restaurants.js
файл маршрутизации
const router = require('express').Router();
const restaruantModel = require('../models/restaruantModel');
const sendData = (res, dataArray, title) => {
res.render ('template', {
locals: {
title,
dataArray
},
partials : {
partial: 'partial-all'
}
});
}
const getAll = async (req, res) => {
const data = await restaruantModel.getAll();
sendData(res, data, 'All The Restaruants')
}
const getById = async (req, res) => {
const { id } = req.params;
const data = await restaruantModel.getById(id);
sendData(res, data, 'Restaruant #' + id)
}
router.get('/restaurants', getAll)
router.get('/restaurants/:id', getById)
module.exports = router;
его легче читать, и вы делаете то, к чему всегда должны стремиться: разделение интересов
таким образом, GET /restaurants
получит вас всех (лучше добавить пейджинг позже), а GET /restaurants/23
получит только ресторан # 23 ...
BTW , если вы используете Visual Studio, так как Engli sh не является моим родным языком, и я люблю писать код на Engli sh, чтобы все могли читать свойства, я использую Проверка орфографии кода plugin:)