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
 |