发送给客户端后无法设置 headers nunjucks/express

Cannot set headers after they are sent to the client nunjucks/express

我 运行 front-end 与节点服务器分开,每次更新 firebase 数据库时,节点客户端应用程序崩溃并出现此错误:

_http_outgoing.js:470

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

我的代码是一个非常基础的 api 调用

app.get("/:user/", cors(), (request, response, next) => {
  var user = request.params['user'];
  console.log(user);
  firebase.database().ref(`/master/${user}/`)
  .on('value', snapshot => {
      var obj = snapshot.val()
      var data = []
      var keys = []
      for (let a in obj) {
        data.push(obj[a])
        keys.push(a)
      }
      response.render('index.html', { data });
    });
})

使用 .once 而不是 .on 来获取快照的当前状态,而不是检索每个更新。 doc