每次实例化类的新实例时,我的项目都需要设置一个新端口.

在 node 中.js如何在我的新套接字服务器中找到一个免费的TCP端口?或者判断我指定的端口是否已被使用.

推荐答案

通过为端口指定0,可以绑定到操作系统分配的随机空闲端口.这样,您就不受竞争条件的约束(例如,在您有机会绑定到某个开放端口之前,先判断该端口和绑定到该端口的某些进程).

然后你可以通过拨打server.address().port获得指定的端口.

例子:

var net = require('net');

var srv = net.createServer(function(sock) {
  sock.end('Hello world\n');
});
srv.listen(0, function() {
  console.log('Listening on port ' + srv.address().port);
});

Node.js相关问答推荐

使用Vite和ReactJS时,在哪里设置NODE_OPTIONS?

可以删除一个mongodb catch块

Mongoose:如何使用填充进行查找

PM2 是否需要成为其托管项目的依赖项?

在 TypeScript 中正确键入 MongoDB find 方法

Gulp 能否向 Docker 发出增量构建的第一次迭代完成的信号?

安装样式组件时出现react 错误

Prisma,只有一个用户的行可以有真值,@@unique(userId, isActive)

NPM 错误:修复upstream 依赖冲突安装 NPM 包(云功能)

如何解决 npm install react-select failure with error : An unknown git error occurred, git@github.com :Permission denied (publickey)

MongoDB Atlas中的聚合触发器不起作用

JAVASCRIPT:foreach 循环后的空数组

GridFS 大文件下载使 Node.js 服务器崩溃. MongoServerError:排序超出了字节的内存限制

如何在 mongoDB 中进行全动态搜索?

Cypress net::ERR_EMPTY_RESPONSE 在真实服务器调用上

Nodejs-console.error vs util.debug

node.js 模块和函数中this的含义

当进程被杀死时,如何优雅地关闭我的 Express 服务器?

deno vs ts-node:有什么区别

如何阻止 babel 将this转换为undefined(并插入use strict)