Listen Options

server.listen(options) — Node's options-object form of listen. `{ port, host, backlog, exclusive }` is accepted in place of the positional (port, callback) arguments. `host` binds a specific interface (here loopback), which server.address.address reflects back via getsockname; `backlog` sets the listen(2) queue depth.

import http from 'http';
import type { AddressInfo } from 'net';

const server = http.createServer((req: http.IncomingMessage, res: http.ServerResponse) => {
  res.writeHead(200, { "Content-Type": "text/plain" });
  res.end("hello from " + req.url);
});

server.listen({ port: 0, host: "127.0.0.1", backlog: 128 }, () => {
  const a = server.address() as AddressInfo;
  console.log("bound host:", a.address);       // 127.0.0.1
  console.log("ephemeral port:", a.port > 0);  // true
  server.close();
});

console.log("server closed, main continues");
View source on GitHubexamples/http/listen_options.ts