74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# node-portfinder [](https://travis-ci.org/http-party/node-portfinder)
 | 
						|
 | 
						|
## Installation
 | 
						|
 | 
						|
``` bash
 | 
						|
  $ [sudo] npm install portfinder
 | 
						|
```
 | 
						|
 | 
						|
## Usage
 | 
						|
The `portfinder` module has a simple interface:
 | 
						|
 | 
						|
``` js
 | 
						|
  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) :
 | 
						|
 | 
						|
``` js
 | 
						|
  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](http://bluebirdjs.com/docs/getting-started.html) 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:
 | 
						|
 | 
						|
```js
 | 
						|
portfinder.basePort = 3000;    // default: 8000
 | 
						|
portfinder.highestPort = 3333; // default: 65535
 | 
						|
```
 | 
						|
 | 
						|
or by passing optional options object on each invocation:
 | 
						|
 | 
						|
```js
 | 
						|
portfinder.getPort({
 | 
						|
    port: 3000,    // minimum port
 | 
						|
    stopPort: 3333 // maximum port
 | 
						|
}, callback);
 | 
						|
```
 | 
						|
 | 
						|
## Run Tests
 | 
						|
``` bash
 | 
						|
  $ npm test
 | 
						|
```
 | 
						|
 | 
						|
#### Author: [Charlie Robbins][0]
 | 
						|
#### Maintainer: [Erik Trom][1]
 | 
						|
#### License: MIT/X11
 | 
						|
[0]: http://nodejitsu.com
 | 
						|
[1]: https://github.com/eriktrom
 |