Попробуйте изменить порядок маршрутов в обратном порядке, и это, вероятно, решит вашу проблему:
express.use('/api/system/:systemId/book', bookAPI.routes);
express.use('/api/system', systemAPI.routes);
Причина в том, что экспресс оценивает маршруты «жадно» и даже разрешит частичное совпадение.Поэтому важно сначала сохранить более конкретные маршруты, а не более общие.
Кроме того, я думаю, что вы используете неправильный маршрутизатор в соответствии с документацией systemAPI:
const express = require('express');
const router = express.Router();
router.get('/list', Validate(Validation.list), listHandler)
module.exports = router;
Маршрут bookAPI:
const express = require('express');
const router = express.Router();
router.get('/list', Validate(Validation.list), listHandler)
module.exports = router;
Наконец, импортируйте маршрутизаторы и используйте их:
const express = require('express');
const bookRouter = require('./bookAPI'); //set the file paths based on your file structure
const systemRouter = require('./systemAPI');
const app = express();
app.use('/api/system/:systemId/book', bookRouter);
app.use('/api/system', systemRouter);