快递& Firebase发送后无法设置标头

时间:2016-02-21 02:47:50

标签: node.js express firebase

以下是我的服务器使用快速框架,反手有firebase api

我有两个问题,即如何调用我的函数两次以及错误是什么

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<input type="file" accepts="image/*" multiple webkitdirectory />

以下是我得到的错误

 app.get('/user/:userID/profile/edit', function(req, res) {
  var authData = ref.getAuth();
  var str = (req.query.message == undefined ? "" : req.query.message);
  if(authData) {
    if(req.params.userID == authData.uid){
      ref.child("users").child(authData.uid).on("value",function(snapshot) {
        var userData = snapshot.val();
        res.render('Profile/edit', {
          title : "Price Drop Alert",
          pagetitle : "Profile",
          firstname : userData.firstname,
          lastname : userData.lastname,
          dob : userData.dob,
          tel : userData.tel,
          email : userData.email,
          uid : authData.uid,
          message : str
        });
      });
    }
    else
      res.sendStatus(404);
  }
  else
    res.redirect('/?message='+encodeURIComponent("User is not logged in"));
});

app.post('/user/:userID/profile/edit', function(req,res) {
  var uid = req.params.userID;
  if(req.body.fsubmit == "Submit"){
    ref.child("users").child(uid).update({
      firstname : req.body.fname
    });
    console.log("update");
    res.redirect('/user/'+req.params.userID+"/profile/edit");
  }
});

2 个答案:

答案 0 :(得分:1)

您需要为on()更改方法on(),否则每次更新数据时都会触发回调函数,

答案 1 :(得分:0)

在此行中使用once代替on

ref.child("users").child(authData.uid).on("value",function(snapshot)

它应该看起来像这样:

ref.child("users").child(authData.uid).once("value",function(snapshot)

我今天遇到了这个问题,这就是我解决的方法。