Преобразование в строку NodeJS Express HTTP-ответ возвращается в AngularJS - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь создать программу angularjs, которая взаимодействует с Express / nodejs api и базой данных mysql.

На странице входа я могу правильно вызвать API, и он соединяется с MySQL и, основываясь на правильной комбинации имени пользователя и пароля, я отправляю обратно "password matches" или "failure".

Когда я обращаюсь к этому по HTML с помощью $scope, я получаю ["password matches"], а не совпадения пароля .Я пробовал toString, splice и т. Д., Но без надлежащего результата.

Контроллер

var passStats=[];  
passStats = LoginFactory.validateUserLoginFactory(uName, pWD)      
$scope.pwdStatus = passStats;

Завод

app.factory("LoginFactory", function ($http) {
    var factory = {};

    factory.validateUserLoginFactory = function (UserName, PWD) {

        $http({ method: "POST", url: 'http://localhost:3000/validateUserLogin/', data: { limit: userForm }, cache: false }).then(function (response) {        
           StatusPWD.push(response.data);         

        }, function (error) { console.log(error); });
        return StatusPWD;
    }

    return factory;
});

node.js

res.send('password matches');

HTML

<label>User Name</label>
<input type="text" ng-model="enteredUserName" class="w3-input w3-border w3-padding">
<br>
<label>Password</label>
<input type="text" ng-model="enteredPWD" class="w3-input w3-border w3-padding">
<br>
<input type="button" ng-Click="validateLogin(enteredUserName,enteredPWD)" value="Login" class="w3-btn w3-padding w3-green">
<br> <br> <br>
<label>password {{ pwdStatus}}</label>

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Я решил свою проблему, для которой я отправил вопрос.Я неправильно кодировал заводскую часть и часть контроллера.Следующая модификация дает мне правильный выход в HTML

Factory

factory.validateUserLoginFactory = function (UserName, PWD) {
    var userForm = {};       
    userForm = { user: UserName, password: PWD };       
    return $http({ method: "POST", url: 'http://localhost:3000/validateUserLogin/', data: { limit: userForm }, cache: false });       
}

Контроллер

$scope.pwdStatus;
   LoginFactory.validateUserLoginFactory(uName, pWD)  
  .then(function (data) {
        console.log(data.data);
       $scope.pwdStatus = data.data;
    }, function (data) {
        console.log(data);
    });
0 голосов
/ 25 октября 2018

Это потому, что вы используете StatusPWD.push, который помещает его в массив.

переменная passStats - это массив, в который вы отправляете ответ.

вы можетепросто сделайте это, чтобы получить значение, если passStats является массивом $scope.pwdStatus = passStats[0] или вы можете сделать $scope.pwdStatus = passStats.join("")

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