【问题标题】:How do I send a Mongo Document back to the front end?如何将 Mongo 文档发送回前端?
【发布时间】:2014-09-02 02:17:09
【问题描述】:
//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\'t set headers after they are sent.');" 每个人都说要使用回调函数,但不是我在这里使用回调函数?

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    正如你的错误所说:

    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);
            }
    });
    

    这应该可行..

    【讨论】:

      猜你喜欢
      • 2017-04-09
      • 2018-08-14
      • 2020-05-27
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2020-04-28
      相关资源
      最近更新 更多