Я использую генератор 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 и отображать ошибку в случае ошибки.