Не работают роуты singin singup delete в приложении

Давай разбираться с 1 проблемой в 1 присест. Мы выяснили что signup работает для корректных данных. Так? Дальше

Код создания пользователя:

const createUser = async (req, res, next) => {
  const { email, password, name } = req.body;
  try {
    const hash = await bcrypt.hash(password.trim(), 10);
    await User.create({
      email: email.trim(),
      password: hash,
      name: name.trim(),
    });
      res.status(201).send(SUCCESSFUL_AUTH);
  } catch (next) {}
};

обрати внимание что нет кода для обработки ошибки. Если код попадает в выполнение в ветку catch, то не вызывается ни next ни res, следовательно не отдается ответ на запрос. Надо бы так:

const createUser = async (req, res, next) => {
  const { email, password, name } = req.body;
  try {
    const hash = await bcrypt.hash(password.trim(), 10);
    await User.create({
      email: email.trim(),
      password: hash,
      name: name.trim(),
    });
      res.status(201).send(SUCCESSFUL_AUTH);
  } catch (err) {
    next(err)
  }
};

У меня авторизация по signin не срабатывает из-за рантайм ошибки.

const login = (req, res) => {
  const { email, password } = req.body;
  return User.findUserByCredentials(email, password)
    .then((user) => {
      const token = jwt.sign({ _id: user._id }, jwtSecret, { expiresIn: '7d' });

jwtSecret нигде не определена в коде. Запускаю код из ветки level-1.

лог:

➜  diplom-api git:(level-1) ✗ npm run dev

> diplomt@1.0.1 dev /Users/dp/Desktop/diplom-api
> nodemon app.js

[nodemon] 2.0.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
{ DB: 'mongodb://localhost:27017/news-api', SERVER_PORT: 3000 }
(node:45711) UnhandledPromiseRejectionWarning: ReferenceError: jwtSecret is not defined
    at /Users/dp/Desktop/diplom-api/controllers/users.js:59:49
(node:45711) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:45711) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

postman

Это какой-то “левый” лог, или у тебя другая версия кода по сравнению с моей (я смотрю в ветку level-1 или ты прикладываешь левый скришнот постмена. Левый по той же причине что я написал выше: ошибка кидается в diplom-api\middlewares\auth.js:9:11, но по коду эта функция не используется для раута signup, работу с которым я вижу на скриншоте постмена.

вот и я не понимаю как проверять? у меня вот так а у ревьювера подругому

Запакуй в zip всю папку как она есть сейчас и скинь через https://send.firefox.com/

Скорее всего у тебя не тот код что у меня

https://send.firefox.com/download/8faedd73c3d767f3/#kw_IbhIE8rFjMIyHszBRPA
вот точная ссылка, там все кроме модулей, модули я устанавливал командой “npm i”

Для меня работает signup с этим кодом что на маке что на винде (запускал сервер через стандартную виндовую cmd).

Давай ковырять дальше. Ты задаешь какие-то переменные окружения (environment varibles)?
В каком терминале запускаешь npm run dev (cygwin, стандартный виндовый cmd)?

git bash here

Попробуй через cmd.

git bash притворяется “шлангом” (юниксом в виндовом окружении) фиг его знает как такое поведение нарушает предположения разработчиков npm пакетов.


может по этому

Выкинь все хедеры: сделай новую вкладку в постмене, вбей только body с переключалкой x-www-urlencoded. Я так делал

Мои хереды на всякий случай

Я бы грешил на заголовок Authorisation. Но ты лучше начни с чистого листа в постмене


Ты не воспользовался предыдущим советом запустить сервер в cmd.

Не виден точно статус, но кажется это 400 что не есть про авторизацию. Без видимых логов не понять что именно не так. Статус код был 401


и как перескачить на диск д?

Гугли, не помню из головы. Для меня это всегда была боль.

Давай я попробую подебажить через teamviewer. У меня идеи из головы закончились. Остается только расставляеть повсеместно консоль логи и пытаться собрать картинку воедино. Делать это в переписке шибко накладно.

в личку кинул тивьювер

Попробовали-посмотрели по схеме что я описал тут, и все сработало корректно.