Node.js HTTPstring

给定一个完整的HTTP消息string,Node.js中是否有设备来parsing它? 基本上我不会使用http.createServer函数。 我已经通过其他方式(ZMQ)已经有完整的HTTP消息,但我需要parsing它,这意味着标题,查询string,后主体等。

而且,相同的function应该能够反转这个过程,即创build一个完整的HTTP响应消息string。 我可以使用和通过不同的运输(ZMQ)。

我知道PHP有Symfony的HTTP基础 (这是我所要求的)。 Node.js中是否有类似的东西?

我发现这个: https : //github.com/joyent/http-parser,但它是在C ++中

你可以在节点内使用http-parser,但是没有很好的logging。 我从testing中提取了以下示例:

var HTTPParser = process.binding('http_parser').HTTPParser, CRLF = '\r\n', request = new Buffer('POST /it HTTP/1.1' + CRLF + 'Content-Type: application/x-www-form-urlencoded' + CRLF + 'Content-Length: 15' + CRLF + CRLF + 'foo=42&bar=1337'), parser = new HTTPParser(HTTPParser.REQUEST), headers = {}, body = ''; parser.onHeadersComplete = function(info) { headers = info; }; parser.onBody = function(b, start, len) { body = b.slice(start, start + len).toString(); }; parser.onMessageComplete = function() { console.log('message complete'); console.log('request method: ' + headers.method); console.log('request body:\n\n ' + body); }; parser.execute(request, 0, request.length); 

给出以下输出:

 message complete request method: POST request body: foo=42&bar=1337