A simple tool to find an open port or domain socket on the current machine
Clone or download
Latest commit 8d0b757 Nov 30, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Include getPorts in the typescript definition Nov 30, 2018
test Makes test run sequentially instead. Aug 20, 2018
.gitignore updated ignore file to explude swp Feb 11, 2016
.travis.yml add my email to travis notifications Aug 16, 2016
LICENSE adding MIT license Aug 9, 2012
README.md port range options documented Oct 19, 2018
appveyor.yml set DEBUG=* for appveyor Aug 16, 2016
package-lock.json 1.0.20 Nov 30, 2018
package.json 1.0.20 Nov 30, 2018

README.md

node-portfinder Build Status

Installation

  $ [sudo] npm install portfinder

Usage

The portfinder module has a simple interface:

  var portfinder = require('portfinder');

  portfinder.getPort(function (err, port) {
    //
    // `port` is guaranteed to be a free port
    // in this scope.
    //
  });

Or with promise (if Promise are supported) :

  const portfinder = require('portfinder');

  portfinder.getPortPromise()
    .then((port) => {
        //
        // `port` is guaranteed to be a free port
        // in this scope.
        //
    })
    .catch((err) => {
        //
        // Could not get a free port, `err` contains the reason.
        //
    });

If portfinder.getPortPromise() is called on a Node version without Promise (<4), it will throw an Error unless Bluebird or any Promise pollyfill is used.

Ports search scope

By default portfinder will start searching from 8000 and scan until maximum port number (65535) is reached.

You can change this globally by setting:

portfinder.basePort = 3000;    // default: 8000
portfinder.highestPort = 3333; // default: 65535

or by passing optional options object on each invocation:

portfinder.getPort({
    port: 3000,    // minimum port
    stopPort: 3333 // maximum port
}, callback);

Run Tests

  $ npm test

Author: Charlie Robbins

Maintainer: Erik Trom

License: MIT/X11