Node и AngularJs: невозможно передать данные из angular в NodeJS по почте

0

Я использовал этот учебник для создания страницы входа в систему. Мой угловой код выглядит так.

app.directive('ensureUnique', ['$http', function($http) {
    console.log("In validate");
    return {
        require : 'ngModel',
        link : function(scope, ele, attrs, c) {
            scope.$watch(attrs.ngModel, function() {
                $http({
                    method : 'POST',
                    url : '/email/check/' + scope.$eval(attrs.ensureUnique),
                    data : { 'field' : attrs.ensureUnique}
                    }).success(function(data, status, headers, cfg){
                        c.$setValidity('unique', data.isUnique);
                    }).error(function(data, status, headers, cfg) {
                        c.$setValidity('unique', false);
                    });
            });
        }
    }
}]);

и мой файл маршрутов ie index.js выглядит следующим образом.

app.post('/email/check/:email', function(req, res, next){
    console.log(req.query);
});

Теперь я хочу увидеть эти данные в приложении Node, чтобы я мог проверить, является ли мой идентификатор электронной почты уникальным. Но я не могу этого видеть. Это всегда дает мне пустой объект. Я консультировался со многими сообщениями SO и документами, но не смог найти ответа. Какая здесь ошибка? Что мне не хватает?

  • 0
    Если вы проверяете вкладку своей сети, видите ли вы, что электронное письмо добавляется к URL-адресу в сообщении?
  • 0
    На вкладке мои сети написано неопределенное. Мне нравится / электронная почта / проверка / не определено
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Это потому, что request.query для содержимого querystring, и ваша электронная почта передается как часть URL-адреса. Попробуй это:

console.log(req.params.email);

Кроме того, поскольку вы передаете имя поля в качестве данных, если вы используете bodyParser вы можете прочитать его следующим образом:

console.log(req.body.field);

Обновление основывается на вашем комментарии: по- видимому, ваш директивный код не без проблем. Если директива прикрепляется к входному элементу (это только предположение), то значение этого элемента в ele аргумента. Итак, ваш url должен выглядеть так:

url: '/email/check/' + ele.val(),
  • 0
    req.body.email дает мне имя поля, т.е. email, а req.params.email дает мне неопределенное. Что явно подразумевает, что attrs.ensureUnique не имеет значения, установите Как я могу гарантировать, что я отправляю данные?
  • 0
    я обновил свой ответ
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню