Launch child processes for services that bind to a specified port.
npm install childport
// parent.js
var request = require('request')
, childport = require('childport')
;
function finish (e, p) {
request('http://localhost:3001', function (e, resp, body) {
if (e) throw e
if (resp.statusCode !== 200) throw new Error('status not 200, ', resp.statusCode)
})
}
var child = childport.cp(3001, finish).spawn('node', [__dirname+'/child.js'])
child.on('error', function (e) {throw e})
child.stderr.pipe(process.stderr)
// child.js
var http = require('http')
, childport = require('../')
;
childport.listen(http.createServer(function (req, resp) {
resp.statusCode = 200
resp.end('ok')
}))
childport.listen(server)This method is to be used in child process scripts. It will parse the specified port and call listen on the server it sent and, on success, let the parent process know it has finish so that it can resolve the specified callback.
Returns the server it was passed for easy chaining.
childport.child_process(port, cb) && childport.cp(port, cb)Returns a mocked child_process module that will launch the process with identifying information about the port to bind to.
childport.cp(port, cb).spawnIdentical to core's child_process.spawn.
childport.cp(port, cb).forkIdentical to core's child_process.fork.
childport.cp(port, cb).execIdentical to core's child_process.exec.
childport.cp(port, cb).execFileIdentical to core's child_process.execFile.