如何将Mongo文档发送回前端?

时间:2014-09-02 02:17:10

标签: mongodb mongoose

//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),但这给了我错误,”抛出新的错误('不能在发送后设置标题。');“每个人都说要使用回调函数,但不是我在这里使用回调函数?

1 个答案:

答案 0 :(得分: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);
        }
});

这应该有用..