mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
parser now parses all messages at once
This commit is contained in:
parent
d852f7f1c4
commit
6ba4575385
18
lib/index.js
18
lib/index.js
@ -47,10 +47,9 @@ Client.prototype.connect = function() {
|
||||
var parser = new Parser(data);
|
||||
con.end();
|
||||
var result = parser.parse();
|
||||
while(result) {
|
||||
console.log(result);
|
||||
result = parser.parse();
|
||||
}
|
||||
result.forEach(function(msg) {
|
||||
console.log(msg);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
@ -61,7 +60,16 @@ var Parser = function(buffer) {
|
||||
|
||||
var p = Parser.prototype;
|
||||
|
||||
p.parse = function() {
|
||||
p.parse = function() {
|
||||
var messages = [];
|
||||
var message = this.parseMessage();
|
||||
while(message) {
|
||||
messages.push(message);
|
||||
message = this.parseMessage();
|
||||
}
|
||||
return messages;
|
||||
};
|
||||
p.parseMessage = function() {
|
||||
if(this.buffer.length == this.offset) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -41,22 +41,22 @@ test('Parser on single messages', function() {
|
||||
};
|
||||
|
||||
test('parses AuthenticationOk message', function() {
|
||||
var result = new Parser(authenticationOkBuffer).parse();
|
||||
var result = new Parser(authenticationOkBuffer).parse()[0];
|
||||
assert.same(result, expectedAuthenticationOkayMessage);
|
||||
});
|
||||
|
||||
test('parses ParameterStatus message', function() {
|
||||
var result = new Parser(parameterStatusBuffer).parse();
|
||||
var result = new Parser(parameterStatusBuffer).parse()[0];
|
||||
assert.same(result, expectedParameterStatusMessage);
|
||||
});
|
||||
|
||||
test('parses BackendKeyData message', function() {
|
||||
var result = new Parser(backendKeyDataBuffer).parse();
|
||||
var result = new Parser(backendKeyDataBuffer).parse()[0];
|
||||
assert.same(result, expectedBackendKeyDataMessage);
|
||||
});
|
||||
|
||||
test('parses ReadyForQuery message', function() {
|
||||
var result = new Parser(readyForQueryBuffer).parse();
|
||||
var result = new Parser(readyForQueryBuffer).parse()[0];
|
||||
assert.same(result, expectedReadyForQueryMessage);
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user