У меня есть ссылка примерно так:
const SpotIndexItem = ({ spot }) => (
<Link to={`/spots/${spot._id}`}>
<li>
<p>Put image here</p>
<p>{spot.name}</p>
</li>
</Link>
);
И она ведет на страницу сведений об элементе индекса. В компоненте контейнера на странице сведений у меня есть это:
const mapStateToProps = (state, ownProps) => ({
spot: state.entities.spots[ownProps.match.params.spotId]
});
И я отображаю компонент сведений об элементе, как в моем файле app.js
:
<Route exact path="/spots/:spotId" component={SpotDetail} />
И это в моем маршруте / api / spot. js file:
router.get('/:id', (req, res) => {
Spot.findById(req.params.id)
.then(spot => res.json(spot))
.catch(err =>
res.status(404).json({ nospotfound: 'No spot found with that ID' })
);
});
Но я продолжаю получать это сообщение об ошибке:
Ошибки вывода:
Есть ли способ сделать это с spot._id
? Существуют ли какие-либо встроенные find
методы, которые я мог бы использовать здесь, чтобы получить объект с указанием c _id
?
ОБНОВЛЕНИЕ:
- Из любопытства я также попробовал эти маршруты в Почтальоне, и индексный маршрут работает отлично. Однако, когда я пытаюсь сделать маршрут, подобный этому:
localhost:5000/api/spots/5e4317871c9d440000b1613f
, я получаю null
вместо объекта. Я также нашел этот пост: mon goose 'findById 'возвращает ноль с действительным идентификатором , что решило проблему путем подключения к нужной базе данных. Я новичок в mongoDB, но я уверен, что правильно настроил свою базу данных. Мое приложение подключено к базе данных test
(у меня пока нет возможности добавлять изображения, но вот ссылка на то, как выглядит моя база данных):
введите описание изображения здесь