node检测端口可用性的实践示例

 更新时间:2023年02月01日 10:17:41   作者:在下月亮有何贵干  
本文主要介绍了node检测端口可用性的实践示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

我们编写自己的框架或者 nodejs 服务器代码时,可能会用一些固定使用我们常用的端口。

问题来了,如果是编写框架,你的框架中固定了框架使用8000端口,用户使用你的框架时并不知道,此时他本机的8000端口被占用了,那用户岂不是无法使用你的框架了。

我们需要解决这个问题。

创建项目

$ mkdir project && cd project
$ npm init -y

使用express编写一个服务器

安装 express

$ npm i express

编写一个占用8000端口的服务。

// project/index.js

const express = require('express')
const app = new express()

app.listen(8000, () => {
    console.log(`服务器在8000端口启动`)
})

启动

$ node index.js
服务器在8000端口启动

此时我们不关闭该服务,再打开一个命令行,再尝试启动。

因为8000端口已经运行了一个服务,被占用了,所以报错了:

$ node index.js
Error: listen EADDRINUSE: address already in use :::8000

解决

安装 portfinder

$ npm i portfinder 

使用 portfinder 来检测端口是否可用,如果被占用会重新寻找一个可用的端口给你。

const express = require('express')
const portfinder = require('portfinder')
const app = new express()

const default_port = 8000;

(async () => {
    const port = await portfinder.getPortPromise({
        port: default_port
    })

    app.listen(port, () => {
        console.log(`服务器在${port}端口启动`)
    })
})()

我们再重新启动两个,成功解决问题。

$ node index.js
服务器在8000端口启动

$ node index.js
服务器在8001端口启动

尾言

到此这篇关于node检测端口可用性的实践示例的文章就介绍到这了,更多相关node检测端口可用性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 监控Nodejs的性能实例代码

    监控Nodejs的性能实例代码

    这篇文章主要介绍了监控Nodejs的性能实例代码,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Node.js Continuation Passing Style( CPS与回调)

    Node.js Continuation Passing Style( CPS与

    这篇文章主要介绍了Node.js Continuation Passing Style,将回调函数作为参数传递,这种书写方式通常被称为Continuation Passing Style(CPS),它的本质仍然是一个高阶函数,CPS最初是各大语言中对排序算法的实现
    2022-06-06
  • 详解NodeJs支付宝移动支付签名及验签

    详解NodeJs支付宝移动支付签名及验签

    本文主要介绍了NodeJs支付宝移动支付签名及验签的方法,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Node.js连接postgreSQL并进行数据操作

    Node.js连接postgreSQL并进行数据操作

    自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选。这篇文章就给大家介绍了关于Node.js如何连接postgreSQL数据库,并进行数据操作的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • Linux下为Node.js程序配置MySQL或Oracle数据库的方法

    Linux下为Node.js程序配置MySQL或Oracle数据库的方法

    这篇文章主要介绍了Linux下为Node.js程序配置MySQL或Oracle数据库的方法,这里默认已经装配好了Node环境然后我们利用npm包管理工具来进行配置,需要的朋友可以参考下
    2016-03-03
  • Node.js 8 中的重要新特性

    Node.js 8 中的重要新特性

    这篇文章主要介绍了Node.js 8 中的重要新特性的相关资料,需要的朋友可以参考下
    2017-06-06
  • node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小

    node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小

    这篇文章主要介绍了node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小的相关资料,需要的朋友可以参考下
    2017-01-01
  • Node.js中的事件驱动编程详解

    Node.js中的事件驱动编程详解

    这篇文章主要介绍了Node.js中的事件驱动编程详解,本文主要讲解理论性知识,如什么是事件驱动编程、什么是闭包、闭包如何帮助异步编程等知识,需要的朋友可以参考下
    2014-08-08
  • Electron如何通过ffi-napi调用dll导出接口

    Electron如何通过ffi-napi调用dll导出接口

    文章介绍了如何在Electron项目中使用ffi-napi模块调用DLL文件,并详细描述了环境搭建、安装Electron和ffi-napi、配置Visual Studio和Python环境、解决常见问题等步骤,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • 详解使用PM2管理nodejs进程

    详解使用PM2管理nodejs进程

    本篇文章主要介绍了详解使用PM2管理nodejs进程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论