A FastCGI client implementation in Node.js, mainly designed for communication with PHP.
Not actively developing, and I have been away from PHP projects since 2018.
However, there are still some issues and pull requests from many developers, so I decide not to archive this repo.
Also, I believe it is a small and stable protocol, and it can still work for many years.
npm install fastcgi-client. Use require('fastcgi-client') to get a fastcgiConnector.
var client = fastcgiConnector(options) Create a FastCGI client. Available options:
hostThe server name or IP, default to '127.0.0.1'.portThe server port, default to 9000.sockFileConnect to php-fpm with sock file instead of 127.0.0.1:9000. If you set this option,hostandportwill be ignoredskipCheckServerSkip checking and getting options from the server.maxConnsThe default value of maximum concurrent connections to the server.maxReqsThe default value of maximum concurrent requests to the server.mpxsConnsThe default value of using concurrency over connections or not.- Event
readyClient is ready for accepting request. - Event
errorAn error occurred and returned as 1st argument of event handler.
client.request(params, cb) Create a new request.
params Should be FastCGI params (key-value pairs).
An error object would be passed to cb as 1st argument on failed (request not sent at all), otherwise a request argument is passed as 2nd argument.
The request object:
request.abort()Send an abort request. The request is not ended after the server responds.request.stdinThe writable stdin stream.request.stdoutThe readable stdout stream.request.stderrThe readable stderr stream.request.getExitStatus()Return exit code, or an error if not normally ended. It would be ready before theendevents of stdout and stderr streams.
You should have PHP-CGI installed and PHP5 FPM service running in 127.0.0.1:9000.
Then use npm test to test. Use npm run coverage to see the test coverage.
MIT