Итак... в вашем коде есть ошибка, и он не работает. Да, мы все были там несколько раз и скоро будем там снова, я не сомневаюсь. Недавно я работал над бэкендом стека MERN, в котором я новичок, и все еще нахожусь в некотором мыслительном процессе: «Если что-то сломалось, это должно быть так, как я написал код, а не простая синтаксическая ошибка. еще недостаточно хорошо это знаю»

Я собираюсь показать код, над которым я работал, и посмотреть, не сможете ли вы найти ошибку, которую я сделал. Пожалуйста, не осуждайте ^_^ Я все еще учусь, и проект все еще находится в разработке.

BROKEN CODE
// @route - GET apiV1/auth
// @description - Get current logged in user
// @access - Private
router.get('/user', auth, async (req, res) => {
  try {
    const user = await (await User.findById(req.user.id)).select('-password');
    res.json(user);
  } catch (err) {
    console.error(err.message);
    res.status(500).send('Server Error in routes/apiV1/auth.js ** get');
  }
});
// ERROR I GOT
// (intermediate value).select is not a function

Ты нашел это? Я уверен, что большинство из вас так и сделали. Это очень простая ошибка, которую я сделал. Однако эта простая ошибка завела меня в кроличью нору, в которой я никогда раньше не был. Этот блок кода вызвал ошибку, с которой я никогда раньше не сталкивался. Поэтому, естественно, я направился к своему хорошему другу Google и вставил туда это сообщение об ошибке. После краткого изучения сообщения об ошибке оказалось, что здесь происходит что-то гораздо большее ... или, по крайней мере, так казалось моему мозгу поздно ночью. Если бы я был внимателен, я бы понял, что то, что я читал о *промежуточном значении*, как правило, было из-за синтаксической ошибки. (Это мое понимание, основанное на нескольких переполнениях стека, пожалуйста, дайте мне знать, если это не совсем так, спасибо: D)

Я слишком долго смотрел на этот блок кода, пытаясь понять, что не так, просто просматривая его, чтобы убедиться, что у меня есть все, что мне нужно. Ключевое слово в последнем предложении было «снятие сливок». На самом деле я НЕ ЧИТАЛ свой код, чтобы поймать ошибку, подобную той, которую я сделал. Я сразу обвинил свои знания, а не свои неуклюжие пальцы. Хотел бы я вернуть то время? Вроде. Это был хороший обучающий момент или, ну, подкрепляющий момент для меня.

Когда вы сталкиваетесь с ошибкой, не предполагайте худшее. Сделайте небольшой перерыв, прогуляйтесь, просто отведите взгляд на несколько секунд и сделайте глубокий вдох. Затем со свежей головой сядьте и отладьте. Избавьтесь от первоначального приступа разочарования, прежде чем погрузиться в кроличью нору, в которой вам не нужно находиться. Сначала проверьте простые вещи. Дважды проверьте простые вещи. Если все это подтвердится, и вам все еще нужно спуститься в кроличью нору... Что ж, желаю вам удачи и надеюсь, что вы нашли выход!