angular как получить сообщение от сервера?

239
09 марта 2017, 23:39

За пример возьмем форму регистрации.

back-end

app.post('/api/registration',
  function (req, res, next) {
    if(req.username == undefined) {
      return res.status(400).send('Username not found'); //Пример 1
    }
    User.findOne({
      where: {email: req.body.email}
    }).then(function (foundUser) {
      if(foundUser) {
        return res.status(200).send('That email is already taken.'); //Пример 2
      } else {
        User.create({
        username: req.body.username,
        email: req.body.email,
        password: bcrypt.hashSync(req.body.password)
      }).then(function (foundUser) {
        passport.authenticate('local', {
          successRedirect: '/',
          failureRedirect: '#!/login',
          failureFlash: true
        });
      });
    }
  });
});

front-end

$scope.signup = function() {
  $scope.newUser = {};
  $scope.newUser.username = $scope.regUsername;
  $scope.newUser.email = $scope.regEmail;
  $scope.newUser.password = $scope.regPwd;
  $http({
    method: 'POST',
    url: $scope.url + 'registration',
    data: $scope.newUser
  }).then(function success(res) {
    console.log(res); //Пример 2
  }), function (res) {
    console.log(res); //Пример 1
  }
};

В первом случае, Пример 1 браузер получает ошибку

POST http://localhost:3000/api/registration 400 (Bad Request)

сообщения Username not found не нашел ни где. Если сделать запрос через постман, там получаю и сообщение.

Во втором случае, Пример 2 браузер показывает сообщение

Object {data: "That email is already taken.", status: 200, config: Object, statusText: "OK"}

Моя задача получить сообщение об ошибке от сервера и на основании этой ошибки вывести системное сообщение или произвести какие то манипуляции на стороне клиента. Как правильно это реализовать?

READ ALSO
Конечный автомат

Конечный автомат

Набросал пример исходя из описания алгоритмаХочу услышать замечания, что стоило бы изменить в этом коде:

285
Сравнение скорости загрузки серверного шрифта и google-шрифта

Сравнение скорости загрузки серверного шрифта и google-шрифта

На англоязычном стаке задавал вопрос о проблемах подключения шрифта через @font-face

316
Вычитание. Длинная арифметика. JS

Вычитание. Длинная арифметика. JS

Необходимо реализовать вычитание больших чиселНаписала функцию, но в консоли выводит с ошибкой: 499999-41900

455
Проверка поля input[text]

Проверка поля input[text]

Как проверить поле input[text] ? Только вот не отправляя формуЕсть кнопка "Дальше" нажимая на эту кнопку проверяется поле

295