HTTP应用程序正在以特定的POST方法发送大型主体。我想测量收到标题后服务器所用的时间,直到收到正文。有没有办法在restify或express中将事件(数据,结束)分配给路由定义?我不想切换到node.js的原始HTTP服务器。
答案 0 :(得分:1)
Restify使用formidable来处理文件上传。您可以使用与restify捆绑在一起的bodyParser插件来侦听多部分文件处理程序上的事件。可以记录end
事件以了解文件何时被完全接收。
使用restify服务器的pre()方法记录收到请求的时间。
var restify = require('restify');
var server = restify.createServer();
server.post('/upload', function(req, res, next){
res.send({upload: 'done'});
next();
});
server.pre(function (req, res, next) {
console.log("Request received at: " + req._time);
next();
});
server.use(restify.bodyParser({
multipartFileHandler: function(part) {
// Fired when the parser is done receiving the file
part.on('end', function(data) {
console.log('File parsing ended: ' + new Date().getTime());
});
}
}));
server.listen(8080, function() {
console.log('%s listening at %s', server.name, server.url);
});