Я работаю над созданием API с использованием express и MySQL. У меня проблемы с моими маршрутами. У меня есть это в отдельной папке, требуя различные файлы контроллера и экспортируя маршрутизатор в конце. Вот проблема. Последняя функция router.get не будет работать. Я могу поменять его, и все, что осталось, не сработает. Я вернусь пустой массив. Я в растерянности относительно того, что может быть не так. Вот мой код, файл маршрутов:
const express = require('express');
const router = express.Router();
const getEmployeesController = require('../controllers/getEmployees');
const getEmployeesByIdController = require('../controllers/getEmployeesById');
const getEmployeesByFirstNameController = require('../controllers/getEmployeesByFirstName');
router.get('/', getEmployeesController.getEmployees);
router.get('/:id', getEmployeesByIdController.getEmployeesById);
router.get('/:first_name', getEmployeesByFirstNameController.getEmployeesByFirstName);
module.exports = router;
Маршрутизатор 'first_name' работал, когда он был вторым, после '/', но теперь это не так. То же самое с 'id', работает, когда его второй, но не когда он третий.
Вот функция контроллера, например, одна:
const mysql = require('mysql')
const pool = require('../mysql/connection')
const { handleSQLError } = require('../mysql/error')
const getEmployeesById = (req, res) => {
let sql = "SELECT ?? FROM ?? WHERE ?? = ?"
sql = mysql.format(sql, ['*', 'employees', 'emp_no', req.params.id])
pool.query(sql, (err, rows) => {
if (err) return handleSQLError(res, err)
return res.json(rows);
})
}
module.exports = { getEmployeesById };