我写了一个供内部使用的网站跟踪器,因为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的逻辑。
答案 0 :(得分:1)
如果您执行了res.send()
,则无法修改结果,请改为使用res.write()
+ res.end()
。
res.send()
是express的一种方便方法,它将res.write()和res.end()结合起来以方便使用。如果要在多个位置的响应中发送数据,则必须使用nodejs的方法写入并结束结果。