You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					74 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					74 lines
				
				1.7 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# 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
							 |