Node.js Сообщение Запрос висит - PullRequest
0 голосов
/ 27 июня 2018

У меня есть серверная часть ASP.Net API с регистрацией пользователя. Я попытался сделать этот пост-запрос с помощью модуля запроса, и он работает (я вижу, что данные правильно записываются в базу данных), но браузер просто зависает и в итоге показывает пустую страницу.

/* POST Register */
router.post('/register/account', function(req, res, next) {
  process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
  request.post({
    headers: {'content-type' : 'application/json'},
    url: 'https://localhost:44338/account/register',
    body:JSON.stringify({
      "email" : req.body.email,
      "password" : req.body.psw
    }), 
    function(error, response, body) {
      console.log(body);
    }
  });
});

body должно быть токеном, сгенерированным jwt, я проверил почтовый запрос на POSTMAN, он дает мне статус 200 OK и даже показывает токен в теле. Есть идеи, что случилось? В идеале я хочу вернуться на страницу индекса с токеном, добавленным в cookie и / или заголовок, чтобы впоследствии я мог выполнять «авторизованные» запросы.

Ответы [ 3 ]

0 голосов
/ 27 июня 2018

При обратном вызове вашего POST вам нужно использовать res для ответа на исходный запрос, в противном случае он будет продолжать зависать. Что-то такое простое, как res.status(200).send("Request successful") должно идти прямо под той частью, где у вас есть console.log(body)

Справку по API Express.js для res можно найти здесь https://expressjs.com/en/4x/api.html#res

0 голосов
/ 27 июня 2018

Используйте res.send() для отправки ответа в браузер клиента.

router.post('/register/account', function(req, res, next) {
  process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
  request.post({
    headers: {'content-type' : 'application/json'},
    url: 'https://localhost:44338/account/register',
    body:JSON.stringify({
      "email" : req.body.email,
      "password" : req.body.psw
    }), 
    function(error, response, body) {
      console.log(body);
      res.status(200).send(body);
    }
  });
});
0 голосов
/ 27 июня 2018

Вы должны либо вернуть ответ (используя res), либо позвонить next(), если хотите, чтобы запрос обрабатывался дальше. Если вы этого не сделаете, запрос подождет («завис»).

В этом случае запрос должен обрабатываться дальше, когда ваш внутренний HTTP-запрос возвращается, поэтому измените ваш обратный вызов. Также подумай о случае ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...