У меня есть необработанная строка запроса HTTP, из которой мне нужно создать представление объекта.
Вместо того, чтобы изобретать колесо, я думал об использовании внутреннего парсера http, чтобы получить экземпляр http.IncomingMessage
Возможно ли это?
Я так думаю, потому что строка не так сильно отличается от полного потока.
Как это сделать?
Я посмотрел исходный код, и они получили парсер запросов, как следует
var HTTPParser = process.binding('http_parser').HTTPParser;
var parser = new HTTPParser(HTTPParser.REQUEST)
Edit
Некоторый прогресс от node.js test
var request = Buffer(raw);
var parser = new HTTPParser(HTTPParser.REQUEST);
parser.execute(request, 0, request.length);
Изменить 2
Некоторые eventHandlers отсутствовали (все они)
parser.onHeadersComplete = function(res) {
console.log('onHeadersComplete');
console.log(res);
};
parser.onBody = function(body) {
console.log('body done');
console.log(body.toString());
}
parser.onMessageComplete = function(res) {
console.log('done');
};
Спасибо