首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Node服务器读取响应

从Node服务器读取响应
EN

Stack Overflow用户
提问于 2017-11-05 14:26:22
回答 2查看 345关注 0票数 1

我正在编写一个程序,其中将在服务器端编译特定的Java文件,如果编译中有任何错误,我将捕获错误信息并将其发送回客户端。但是,我尝试过许多读取JSON对象的方法,但都没有效果。

因此,我的问题是,为什么我不能读取服务器在客户端发送的错误字符串?我正在使用res.data.err读取错误响应。

服务器端代码

代码语言:javascript
复制
var cmd=require('node-cmd');
exports.compileTest = function(req,res){

console.log(req.body.data.fileName);
var file = req.body.data.fileName;
var output = "";
 output = cmd.get(
    'javac solutionTest/'+file,
    function(err, data, stderr){

       if (err) {
           console.log(err);

           res.json({ state : 0 ,err});
        }
        else
             res.json({ state : 1});
    }
    );

}

客户端代码

代码语言:javascript
复制
 $scope.compileSol = function(){
 $http.post('/testRun', { data : { fileName : $scope.solutionFileName.name} 
   }).then(function(res){
      if(res.data.state==0){
            alert(res.data.err);

      }
        }).catch(function(error){
    });
    }

下面是我想发送到web浏览器的错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-05 15:55:48

我的错误在于假设err是服务器的准确错误输出。

解决方案是将其转换为字符串,然后将其发送过来。

代码语言:javascript
复制
var cmd=require('node-cmd');


exports.compileTest = function(req,res){

console.log(req.body.data.fileName);
var file = req.body.data.fileName;
var output = "";
 output = cmd.get(
    'javac solutionTest/'+file,
    function(err, data, stderr){

       if (err) {
           console.log(err);

       //added this line
       err = err.toString();

           res.json({ state : 0 ,err:err});

        }
        else
             res.json({ state : 1});
      }
    );

}
票数 0
EN

Stack Overflow用户

发布于 2017-11-05 14:42:45

我认为您从服务器发送的err变量是一个JSON对象,其中包含了key:err。如果没有,您可以考虑修改它,就像我下面所做的那样。

代码语言:javascript
复制
  if (err) {
               console.log(err);

               res.json({ state : 0 ,err: err});
            }
            else
                 res.json({ state : 1});
        }

客户端的对象响应应该具有与发送对象相同的形式。按照您从服务器发送它的方式,应该是这样您可以访问它的客户端:

代码语言:javascript
复制
if(res.state==0){
            alert(res.err);

      }
        }).catch(function(error){
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47122674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档