Skip to content

Instantly share code, notes, and snippets.

@wtype
Last active July 31, 2023 22:05
Show Gist options
  • Save wtype/f9c0ba727ca2e4d0decf42e0304b2943 to your computer and use it in GitHub Desktop.
Save wtype/f9c0ba727ca2e4d0decf42e0304b2943 to your computer and use it in GitHub Desktop.
Find an unused port in Node.
const net = require('net');
function findUnusedPort() {
return new Promise((resolve, reject) => {
const server = net.createServer();
// Bind to port 0 to ask the kernel to find a
// local port from a range of open addresses.
// Close the connection once a port is found.
server.listen(0, () => {
const { port } = server.address();
server.once('close', () => resolve(port));
if (typeof port === 'number') {
server.close();
} else {
reject('Failed to find an open dynamic port');
}
});
});
}
(async () => {
const port = await findUnusedPort();
console.log('port', port);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment