我正在尝试一个简单的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"内部执行很多次。