2016-10-07 4 views
0

Я создаю относительно простую конечную точку, которая должна возвращать число после выполнения краткого запроса базы данных и вычисления. Проблема в том, что я не уверен, как я должен отправить его в интерфейс, так что он легко доступен там. В частности, я использовал метод res.json(), но когда console.log 'ed, он возвращает огромный объект, данные которого не найдены.Извлечение информации отправлено с использованием res.json Из интерфейса Node + Express

Как я могу отправить данные из API и принять их на передней панели? То есть, я предполагаю, что это придет как JSON, но мне интересно, распаковывать его.

Вот код:

router.get('/current/:id', function(req, res){ 
    var collection = db.get('Activity'); 

    var started = false; 
    var seconds; 

    //Important to use findOne here to get an object back instead of an array 
    collection.findOne({_id : req.params.id }, function(err, activity){ 
     if (err) throw err; 
     var dateNow = (new Date()).getTime(); 
     console.log("activity in /current/:id is: " + activity); 
     if (activity.runtime) { 
      var dateStart = (Date.parse(activity.runtime.startDate)); 
      seconds = Math.round((dateNow - dateStart)/1000); 
      started = activity.runtime.started; 
      console.log("dateNow: " + dateNow); 
      console.log("dateStart " + dateStart); 
      console.log("seconds " + seconds); 
      console.log(activity.runtime.started); 
     } else { 
      started = false; 
      seconds = 0; 
     } 

     if (started && (seconds > 0)) { 
      //res.json(seconds); 
      console.log(res.json(seconds)); 
     } 
     else { 
      //res.json(0); 
      console.log(res.json(seconds)); 
     } 
    }); 
}); 

ответ

1

Вам только нужно быть забота о содержании ответа, вы можете отправить ответ следующим образом:

if (started && (seconds > 0)) { 
    console.log(seconds); 
    res.send({data : seconds}); 
}else { 
    res.send({data : 0}); 
    } 

и клиент будет получать данные, :

{data : 0} 
+0

Спасибо. Это работает. Но мне все еще интересно все, что есть в этом :-) – MadPhysicist

+0

Нет проблем, вы можете отправить все ответы как приведенный выше фрагмент. –

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