У меня есть простое приложение ExpressJS, с которым у меня проблема, я не могу распознать расширенные маршруты, пример можно найти ниже.
ИНИЦИАЛИЗАЦИЯ
var app = express();
app.use("/cars", carRouter);
МАРШРУТИЗАТОР
let carRouter = Router();
carRouter.get("/", carController.all);
carRouter.get("/:id", carController.one);
carRouter.get("/:id/state", carController.state);
в моем контроллере я подключаюсь к MongoDB с помощью библиотеки Mongoose.
КОНТРОЛЛЕР
// Car is imported as a Mongoose Schema
export let all = (request: Request, response: Response): void => {
Car.find().then((data) => {
response.status(200).json({ data });
}).catch((error) => {
response.status(500).json({ error });
});
};
export let one = (request: Request, response: Response): void => {
Car.find(request.params.id).then((data) => {
response.status(200).json({ data });
}).catch((error) => {
response.status(500).json({ error });
});
};
export let state = (request: Request, response: Response): void => {
Car.find(request.params.id).then((data) => {
response.status(200).json({ data });
}).catch((error) => {
response.status(500).json({ error });
});
};
Я не могу заставить работать звонок /:id/state. Он не вызывает указанный обратный вызов state для carController.
Любая помощь будет оценена по достоинству.






Проблема заключалась в неправильной настройке запроса мангуста. Я должен был использовать следующее:
let id = request.params.id;
let query = Car.where({ "_id": id});
query.findOne().then((data) => {
response.status(200).json(data);
}).catch((error) => {
// do something with error
});