Nodejs Express用firebase:将标头发送给客户端后无法设置标头



我正在尝试一个简单的firebase和nodejs-express路由应用程序。我面临的问题是,当我在获得请求后发送帖子时,我的nodejs后端在Firebase后端创建了记录,但是之后它崩溃了,指出"无法将标题发送给客户端"。

功能是:

/* GET all existing groups listing. */
router.get('/', function (req, res, next) {
    var db = admin.database();
    var dataToShow = [];
    var source = req.query.source;
    var destination = req.query.destination;
    var groupsListing = db.ref(url).orderByChild('source').equalTo(source);
    groupsListing.on('value', function(snapshot) {
        snapshot.forEach(function(childSnapshot){
            var childKey = childSnapshot.key;
            var childData = childSnapshot.val();
            if(childData.destination == destination) {
                dataToShow.push(childData);
            }
        });
        return res.status(200).json(dataToShow);
    });
});
/* POST a new group listing. */
router.post('/', function (req, res, next) {
    var db = admin.database();
    var newKey = db.ref(url).push().key;
    var groupData = {
        key: newKey,
        source: req.body.source,
        destination: req.body.destination,
        time: req.body.time,
    };
    db.ref(url + newKey).update(groupData, function () {
        return res.send("Added");
    });
});

我无法理解为什么它不起作用,因为我看不出是否要从任何地方发送多个Res。我尝试了其他几件事,例如返回JSON对象。但这并没有真正的帮助。我通过Postman失败的简单查询。

对此的任何帮助将不胜感激。

我认为您的grouplist.on被多次执行。您的代码可能会在" grouplist.on"内部执行很多次。

最新更新