Пожалуйста, посмотрите на этот сценарий. Я использую MongoDB и Express для бэкэнда. Express setup: я создал модель ModelOne, создал действия, чтобы получить все модели, получить только одну модель по идентификатору, обновить и удалить. Эти действия хранятся в папке «контроллеры», а затем импортируются в папку «маршруты». Это импортируется в основной сервер. js файл, и все отлично работает. Все маршруты работают.
Теперь я создал другую модель, ModelTwo, создал действия и добавил их в файл маршрутов. Тем не менее, все маршруты работают, кроме получения ModelTwo по идентификатору, чтобы получить эту указанную c модель.
Мой вопрос: как это возможно, что все маршруты работают, за исключением того, что маршрут получает спецификацию c Модель Два. Сервер выдает ошибку: «ошибка сервера». Я использую Почтальон.
Я проверял код миллион раз, и в этом нет ничего плохого. Почему бы поставить запрос работать, удалить работу, но получить запрос для одной модели не будет? Вот как эти действия выглядят:
try {
const singleModelTwo = await ModelTwo.findById(req.params.id);
return res.status(200).json({
success: true,
count: singleModelTwo.length,
data: singleModelTwo
})
} catch (err) {
if (err.name === 'ValidationError') {
const messages = Object.values(err.errors).map(val => val.message);
return res.status(400).json({
success: false,
error: messages
});
}
else {
return res.status(500).json({
success: false,
error: "Server error"
});
}
}
}
И что действительно странно, это работало хорошо до того, как я начал разрабатывать приложение внешнего интерфейса в React, и я заметил, что он не получает никаких данных для одной модели. Я думал, что это ошибка внешнего интерфейса, но потом я просто использовал Postman и увидел, что все маршруты для модели один работают хорошо, в то время как маршруты для модели два работают только для получения всех документов, удаляя указанный документ c и редактируя указанный c документ. Только получение указанного c документа не работает.
Я попытался очистить кеш, снова установить модули, изменить маршрут, но ничего не помогло. Кто-нибудь имеет представление о том, что происходит?
Спасибо