如何使用ExpressJS发送条件响应?

时间:2017-09-05 15:33:07

标签: node.js express

我正在尝试使用res.send语句创建条件if/else

有效。但是,几秒钟后我的服务器崩溃了,我收到了这个错误

Error: Can't set headers after they are sent.

我更新了我的回复,使其看起来像return res.send...但我仍然面临同样的问题。

我确实需要有条件地设置我的响应,对于我的app逻辑,我无法在if/else之外设置响应。特别是对于同步目的。

那么如何防止我的服务器崩溃?

使用firebase:

if(req.body.hasOwnProperty('simplePost')){
      var postRef = admin.database().ref('post')
      postRef.once('value').then((snap)=>{
        if(!snap.exists()){
          return false
        }else{
          postRef.set(data)
          return res.status(200).end()
        }
      })
    }else if(req.body.hasOwnProperty('postWithRedirect')){
      var postRef = admin.database().ref('post')
      postRef.once('value').then((snap)=>{
        if(!snap.exists()){
          return false
        }else{
          postRef.set(data)
          return res.status(200)send({redirectUrl:snap.child('url').val()}).end()
        }
      })
    }

0 个答案:

没有答案