我能够使用下面的源代码在 Node.js 中捕获原始请求。
var http = require('http');
var express = require('express');
var remote = express();
remote.use(function(req, res, next) {
req.socket.once('data', function(data) {
console.log(data.toString());
});
next();
});
remote.use(function(req, res, next) {
res.end('end');
});
http.createServer(remote).listen(8080);
但此源可以在(包括)第二个请求之后捕获原始请求,因为第一个请求在绑定(bind)事件处理程序之前已被使用。如果客户端不使用 keep alive,我将无法捕获任何请求。
如何捕获原始请求,包括第一个请求?
最佳答案
我找到了使用 'connection' event on http.Server 的方法.
var http = require('http');
var express = require('express');
var remote = express();
remote.use(function(req, res, next) {
res.end('end');
});
var server = http.createServer(remote);
server.on('connection', function(socket) {
socket.on('data', function(chunk) {
console.log(chunk.toString());
});
});
server.listen(8080);
关于javascript - 如何在 Node.js 中捕获原始请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32340403/