在node.js上响应后插入一些数据

时间:2012-10-26 09:49:56

标签: node.js express

我写了一个供内部使用的网站跟踪器,因为Google Analytic不符合要求。

我使用node.js和Express来开发跟踪系统。到目前为止,一切运作良好。但我想确认的是,如果我在响应图像后插入日志数据后面有一些问题。

谢谢!

function image_response(req, res, next){
    var buf = new Buffer([0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b]);
    res.send(200, buf);
    next();
}

app.get('/tracker.gif', image_response, function(req, res){
     // blah blah blah 
     // DB insert codes..
}

实际上,“image_response”完全是响应的结束并关闭与客户端的浏览器连接。然后,执行将数据保存到DB的逻辑。

1 个答案:

答案 0 :(得分:1)

如果您执行了res.send(),则无法修改结果,请改为使用res.write() + res.end()

res.send()是express的一种方便方法,它将res.write()和res.end()结合起来以方便使用。如果要在多个位置的响应中发送数据,则必须使用nodejs的方法写入并结束结果。