2015-09-14 4 views
0

Я использую комбинацию Node and Angualr JS Alongwith express-4Возвращение успеха, используя res.send

В моем коде я пытаюсь отправить newSourceId через res.send. Я могу получить newSourceId, но когда я отправлю его с помощью res.send, он попадает в error вместо того, чтобы попасть в success.

Я также пробовал использовать res.sendStatus(newSourceId), но не повезло!

Ниже узел JS часть:

app.post('/addObservationDetail',function(req,res){ 

var newSourceId = -1; 

Observation.create({obv_source:req.body.source,obv_waveband:req.body.waveband,prpsl_id:req.body.pId} 
).then(function(result) { 

     Observation.findAll({ 
      attributes: [['obv_id','id']],where:{prpsl_id:req.body.pId},order: [["obv_id","DESC"]],limit: 1 
      }) .then(function(rows) { 
       console.log("Obv_Id is = "+rows[0].dataValues.id); 
       newSourceId=rows[0].dataValues.id; 
       console.log("newsrc===="+newSourceId); 
       res.send(newSourceId); 
      }); 
}); 
}); 

Это Угловая JS часть:

$scope.updateObsDet = function(obs_detail,index) { 
      var url = "/"; 
      if(obs_detail.sourceId == null){ 
       url += "addObservationDetail"; 
       $http({ 
        method:'POST', 
        url:url, 
        headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}, 
        transformRequest:function(obj){ 
         var str = []; 
         for(var p in obj) 
          str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
         return str.join("&"); 
        }, 
        data:{source:obs_detail.source,waveband:obs_detail.waveband,pId:$scope.proposal.proposalId}      
       }).success(function(data){ 
        alert("New observation added");  //should come in here 
        updateSourceId(data,index,obs_detail); 
       }).error(function(data){ 
        alert(data);   //getting in here 
       }); 

      } else { 
       url += "updateObservationDetail"; 
       data = { 
         source:obs_detail.source, 
         waveband:obs_detail.waveband, 
         sourceId:obs_detail.sourceId 
         }; 
       $http.post(url,data).success(function(data){ 
        alert(data); 
       }).error(function(data){ 
        alert(data); 
       }); 
      } 
     }; 

PS: Я не могу изменить угловую часть кода, изменения должны быть сделаны в части узла JS.

+1

вы пытались отправить в формате JSON. может быть, это поможет вам? и ** Observation.findAll ** это всегда будет возвращать некоторые записи? –

+0

@MuhammadUsman да, он всегда будет возвращать записи, как установить тип как JSON, нужно ли указывать его отдельно, я использую 'express-4' – Abhishek

+0

, пожалуйста, посмотрите этот ответ, чтобы вернуть ответ json http: // stackoverflow .com/questions/19696240/proper-way-to-return-json-using-node-or-express –

ответ

1

да вы можете установить JSON ответ попробовать это

var http = require('http'); 

var app = http.createServer(function(req,res){ 
    res.setHeader('Content-Type', 'application/json'); 
    res.send(JSON.stringify({ a: 1 })); 
}); 
app.listen(3000); 

 Смежные вопросы

  • Нет связанных вопросов^_^