node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey »



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.js 
var http = require('http')
  , childport = require('../')
childport.listen(http.createServer(function (req, resp) {
  resp.statusCode = 200


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).spawn

Identical to core's child_process.spawn.

childport.cp(port, cb).fork

Identical to core's child_process.fork.

childport.cp(port, cb).exec

Identical to core's child_process.exec.

childport.cp(port, cb).execFile

Identical to core's child_process.execFile.