как аутентифицировать угловой почтовый вызов из nodejs на основе stdout и stderr

Я использую генератор angular-fullstack для создания веб-приложения. Внешний интерфейс разработан с использованием angularjs, а серверная часть - с использованием nodejs. Я написал функцию python, чтобы узнать, является ли хост хостом Linux или нет, который вызывается через nodejs и записывает в файл «Это допустимый хост» в случае действительного хоста Linux. Если хост является хостом Linux, я хочу перенаправить на другую страницу. Мой угловой код:

$scope.sendlogin = function () { 
            console.log("inside click");

            var posting = $http({
                method: 'POST',

                url: '/login',
                data: $scope.data,
                processData: false
            })
            posting.success(function (response) {

                $location.path("/vprobe");
            });

             }

Мой код узла:

app.post('/login', function (req, res) {
/* Handling the AngularJS post request and storing in a file*/
var fs = require("fs");
console.log(req.body);
var jsonfile = require('jsonfile')

 var file = 'login.json'
 var obj = req.body;

 jsonfile.writeFile(file, obj, function (err) {
 console.error(err)
 })

// invoking python child process 
var exec = require('child_process').exec;
var arg = 'python  checkvalidity.py'
exec(arg, function(error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
console.log('exec error: ' + error);
res.send(stdout);
 });

 });

Но приведенный выше код работает неправильно. Как для stdout, так и для stderr он перенаправляется на страницу. Стандартный вывод считывает файл с содержимым «Это действительный хост». Как перенаправлять только в случае stdout и отображать ошибку в случае ошибки.


person ABHISHEK KUMAR TIWARI    schedule 09.02.2016    source источник


Ответы (1)


Возможно, используйте res.sendStatus(500) в вашем коде nodeJs, если (!stdout ) и перехватите его в своих угловых контроллерах с помощью .error(function(response))

person sac Dahal    schedule 09.02.2016
comment
Не совсем то, что вы сказали, но у меня работал похожий код. Большое спасибо - person ABHISHEK KUMAR TIWARI; 10.02.2016
comment
Так в чем была проблема - person sac Dahal; 10.02.2016
comment
stdout перенаправлял на страницу как для успеха, так и для ошибки. Итак, я только что проверил, если (stdout содержит некоторый символ, который приходит только для успеха), чтобы выполнить часть успеха и в противном случае перенаправить часть ошибки. - person ABHISHEK KUMAR TIWARI; 11.02.2016