2014-09-02 2 views
0
//router  

app.get('/retrieve_report', function(req, res) { 

    var retrieved = retrieve_report(req, res); 

    res.render('retrieve_report.ejs', { 
     'report' : retrieved 
    }); 
}); 

//Load up the report model 
var Report = require('../models/report'); 
console.log('Report ' + Report.schema); 
//expose this function to our app using module.exports 


//query 

module.exports = function(req, res) { 

    //console.log('param ' + res.send); 

    var query = Report.findById(req.param('id'), function(err, doc) { 
     if(err) { 
      throw err; 
     } 
     else { 
      console.log('doc ' + JSON.stringify(doc)); 
      res.send(doc); 
     } 
    }); 
} 

//app.js 
var retrieve_report = require('./config/retrieve_report');//which is the above code 

Я хочу вернуть документ на маршрутизатор, чтобы я мог поместить его информацию в мое представление. Я попробовал «res.json (doc), но это дало мне ошибку», «throw new Error (« Can not set headers после их отправки »):« Все говорят использовать функцию обратного вызова, но не Я с помощью функции обратного вызова здесьКак отправить Mongo Document обратно на передний конец?

ответ

0

Как ваша ошибка говорит:

but that gave me the error, "throw new Error('Can\'t set headers after they are sent.');" 

означает, что вы пытаетесь отправить данные дважды

Пример кода:.

app.get('/retrieve_report', function(req, res) { 

    var query = Report.findById(req.param('id'), function(err, doc) { 
     if(err) { 
      throw err; 
     } 
     else { 
      console.log('doc ' + JSON.stringify(doc)); 
      res.send(doc); 
     } 
}); 

Это должно работать ..

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