我正在使用angular-fullstack生成器来创建Web应用程序。前端使用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读取一个包含内容的文件'这是一个有效的主机'。如何仅在stdout的情况下重定向,并在出现错误时显示错误。
答案 0 :(得分:1)
也许在nodeJs代码中使用res.sendStatus(500)if(!stdout)并使用.error(函数(响应))在角度控制器中捕获它