2024-01-16 21:26:16 +08:00
# node-portfinder [](https://github.com/http-party/node-portfinder/actions/workflows/ci.yml)
2023-12-18 13:12:25 +08:00
## Installation
``` bash
2024-01-16 21:26:16 +08:00
$ npm install portfinder
2023-12-18 13:12:25 +08:00
```
## 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.
//
});
```
2024-01-16 21:26:16 +08:00
Or with promise (if `Promise` s are supported) :
2023-12-18 13:12:25 +08:00
``` 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 .
2024-01-16 21:26:16 +08:00
### Ports search scope
2023-12-18 13:12:25 +08:00
2024-01-16 21:26:16 +08:00
By default `portfinder` will start searching from `8000` and scan until maximum port number (`65535`) is reached.
2023-12-18 13:12:25 +08:00
You can change this globally by setting:
```js
2024-01-16 21:26:16 +08:00
portfinder.setBasePort(3000); // default: 8000
portfinder.setHighestPort(3333); // default: 65535
2023-12-18 13:12:25 +08:00
```
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]
2024-01-16 21:26:16 +08:00
#### Author/Maintainer: [Erik Trom][1]
2023-12-18 13:12:25 +08:00
#### License: MIT/X11
[0]: http://nodejitsu.com
[1]: https://github.com/eriktrom