fastcgi-stream
Read & write FastCGI records from a node.js stream like a boss.
Quickstart
npm install fastcgi-stream --save
The FastCGI stream library has two main pieces, the FastCGIStream
itself and the records that can be sent and received on it.
The FastCGIStream
wraps an existing Stream
to send/receive FCGI records on. 99% of the time this is going to be a net.Socket
.
var fastcgi = ; var fcgiStream = mySocket; // Send FastCGI records.fcgiStream; // Receive FastCGI records.fcgiStream;
Records
All record objects live in the fastcgi.records
namespace. Each record will now be listed. The listing will detail the constructor and parameters each record contains.
Constructor args are never mandatory, you can pass as many or as few arguments as you like.
BeginRequest
var record = new fastcgi.records.BeginRequest(role, flags);
.role
- the role being requested. Possible roles as follows:fastcgi.records.BeginRequest.roles.RESPONDER
fastcgi.records.BeginRequest.roles.AUTHORIZER
fastcgi.records.BeginRequest.roles.FILTER
.flags
- additional flags for the request. There is only one in the specification:fastcgi.records.BeginRequest.flags.KEEP_CONN
AbortRequest
var record = new fastcgi.records.AbortRequest();
EndRequest
var record = new fastcgi.records.EndRequest(appStatus, protocolStatus);
.appStatus
- application return status code.protocolStatus
- protocol return status code, can be one of the following:fastcgi.records.EndRequest.protocolStatus.REQUEST_COMPLETE
fastcgi.records.EndRequest.protocolStatus.CANT_MPX_CONN
fastcgi.records.EndRequest.protocolStatus.OVERLOADED
fastcgi.records.EndRequest.protocolStatus.UNKNOWN_ROLE
Params
var params = 'Name' 'Value' 'AnotherName' 'AnotherValue'; // Params is optional.var record = params;
.params
- an array of name/value array pairs
StdIn/StdOut/StdErr/Data
All of these records take the same constructor and have the same properties.
var body = 'String';var record = body; // .. or .. var body = 'Contents.';var record = body;
GetValues
var values = 'Name' 'AnotherName';var record = values;
.values
- array of values being requested
GetValuesResult
var result = 'Name' 'Value' 'AnotherName' 'AnotherValue'; var record = result;
.values
- array of name/value pairs representing the result.
UnknownType
var record = type;
.type
- the type of record that was not recognized.
License
node-fastcgi-stream is free and unencumbered public domain software. For more information, see the accompanying UNLICENSE file.