当前位置: 首页 > 编程日记 > 正文

Express应用配置端口

Express应用设置端口

  • 方法1 静态修改--直接修改代码中配置的默认端口号
  • 方法2 动态修改--修改代码逻辑使其获取启动命令中的端口号参数
  • 相关文章

在Express应用创建成功后,应用会自动配置一个端口号,比如3000,有时会遇到端口号被占用的情况,这时就需要修改端口号,下面提供了几种修改端口号的方法。

方法1 静态修改–直接修改代码中配置的默认端口号

根据项目的启动命令,找到项目根目录下bin/www文件,在其中修改默认端口号。

www文件内容如下:(原文件内容)

#!/usr/bin/env node/*** Module dependencies.*/var app = require('../app');
var debug = require('debug')('mock-data:server');
var http = require('http');/*** Get port from environment and store in Express.*/var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);/*** Create HTTP server.*/var server = http.createServer(app);/*** Listen on provided port, on all network interfaces.*/server.listen(port);
server.on('error', onError);
server.on('listening', onListening);/*** Normalize a port into a number, string, or false.*/function normalizePort(val) {var port = parseInt(val, 10);if (isNaN(port)) {// named pipereturn val;}if (port >= 0) {// port numberreturn port;}return false;
}/*** Event listener for HTTP server "error" event.*/function onError(error) {if (error.syscall !== 'listen') {throw error;}var bind = typeof port === 'string'? 'Pipe ' + port: 'Port ' + port;// handle specific listen errors with friendly messagesswitch (error.code) {case 'EACCES':console.error(bind + ' requires elevated privileges');process.exit(1);break;case 'EADDRINUSE':console.error(bind + ' is already in use');process.exit(1);break;default:throw error;}
}/*** Event listener for HTTP server "listening" event.*/function onListening() {var addr = server.address();var bind = typeof addr === 'string'? 'pipe ' + addr: 'port ' + addr.port;debug('Listening on ' + bind);
}

修改var port = normalizePort(process.env.PORT || '3000');这一行代码中的端口号即可。


方法2 动态修改–修改代码逻辑使其获取启动命令中的端口号参数

修改如下:
var port = normalizePort(process.env.PORT || '3000');这一行代码修改为如下内容:

/*** Get port number from process.argv or process.env or default.* process.env属性返回一个包含用户环境信息的对象.*/
function getPort() {if (!!process.argv[2]) { // 如果输入了端口号if (isNaN(process.argv[2])) { // 如果端口号不为数字,进行错误提示throw 'PORT ERROR: Please enter the correct port number.'} else { // 如果端口号输入正确,将使用该端口号return process.argv[2]}} else { // 如果未输入端口号,则获取用户环境信息中的端口号或者使用默认端口号return normalizePort(process.env.PORT || '3000');}
}
var port = getPort();

上述代码逻辑:

  1. 先从启动命令中获取端口号,如果可以获取到端口号且端口号可用,则使用该端口号,否则报错。
  2. 如果启动命令中没有指定端口号,则获取用户环境信息中的端口号,如果获取到端口号则使用该端口号,如果用户环境信息中不含端口号,则使用默认端口号。

上述代码修改完成后,使用npm start 端口号命令启动即可。

上述配置完成后,可以在多个终端使用不同的端口号启动项目。


相关文章

  • 搭建Express项目模拟后端接口数据返回

—— END ——

相关文章:

Oracle中PL/SQL的循环语句

PL/SQL的三种形式的循环:1.LOOP(无条件循环):loopstatements;end loop;2.WHILE(有条件循环):while condition loopstatements;end loop;3.FOR(固定次数循环):…

处理器调度算法

1. P117页,练习15:最高响应比 HRRF: 作业 提交时刻 运行时刻 开始时刻 完成时刻 周转时间/min 带权周转时间/min 1 10:00 2:00 10:00 12:00 120 120/120 2 10:10 1:00 12:25 13:25 195 195/60 3 10:25 0:25 12:00 12:25 120 …

bzoj4516

后缀自动机 留个板子 upd:大概懂了 每次新加入的npRight集合肯定只有最后一个位置&#xff0c;那么求所有长得不一样的子串贡献就是Max-Min1,因为Right集合只有这一个位置&#xff0c;所以这Max-Min1个子串只出现在最后一个位置。 #include<bits/stdc.h> using namespace…

npm : 无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本

问题&#xff1a; 在VSCode终端使用npm命令时&#xff0c;出现如下报错信息&#xff1a; npm : 无法加载文件 D:\ProgramFiles\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?Link ID135170 中的 …

Mybatis注解学习记录

Mybatis注解使用1. SQL语句映射1.1 Select注解&#xff1a;实现查询功能1.1.1 用法1.2 Insert注解&#xff1a;实现新增功能1.2.1 用法1.3 Update注解&#xff1a;实现更新功能1.3.1 用法1.4 Delete注解&#xff1a;实现删除功能1.4.1 用法2. 结果集映射2.1 Results注解&#x…

路由和交换机工作原理

路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起&#xff0c;它们之间并不能进行通信&#xff0c;那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时&#xff0c;就已经暗示这些相互连接的…

嵌套选项卡自动播放

HTML <div class"box" id"box"><ul class"top" id"top"><li class"fl">专题</li><li class"fl">视频</li></ul><div class"clearFix" id"cont"…

Facebook 与 Google 正在主导在线身份验证市场

OpenID 公司 JanRain 的一项研究发现&#xff0c;用户在第三方网站进行身份验证时&#xff0c;最喜欢使用 Google 和 Facebook 的身份验证服务。Facebook 的验证服务 在媒体&#xff0c; 零售&#xff0c;技术等领域略微领先&#xff0c;而 JanRain 的17万份客户数据显示&#…

WIN2K/XP/2003 + APACHE + ASP + PHP + MYSQL 的简易实现

至目前总算完成了WIN2K/XP/2003 APACHE ASP PHP MYSQL这样一个建站项目&#xff0c;回过头来仔细想想也并不复杂。只是经过了反复的安装、卸载、研究、测试带找资料。真正的步骤却也没什么难的&#xff0c;但如果让你从头研究可能也是一件很头痛的事情了&#xff01;所以打…

.net 去除特殊字符

str Regex.Replace(str, "<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); //str为需要校验的字符 str Regex.Replace(str, "[~#$%^&\*()_\{}\|<>\/\\\[\]]", "", RegexOptions.IgnoreCase…

为TypeScript项目生成API文档

为TypeScript项目生成文档 使用typedoc为TypeScript项目生成API文档。 1. 使用typedoc生成HTML文档 需要安装 typedoc。 npm i typedoc可以通过命令行参数指定配置信息&#xff0c;也可以通过加载配置文件的方式加载配置信息。 本项目中使用加载配置文件typedoc.json的方式…

DropBox免费扩容到10G了

好久没有写博客了,郑重推荐下Dropbox这款同步软件,很多人有多台电脑,比如公司和家里一些文档需要同步更新,用U盘拷贝来拷贝去,不胜其烦.自然而然就想到用同步软件,而这方面DropBox从速度来说,当然是首屈一指的. 先说明DropBox的优点: 使用简单,去官网http://www.dropbox.com下…

子网划分实例与讲解

子网划分 分为两种&#xff1a;◆ 给定网络地址&#xff0c;划分子网。◆不给定网络地址&#xff0c;根据主机数量&#xff0c;自由确定网络地址&#xff0c;进而划分子网。【实例1】给定网络地址&#xff0c;划分子网。我们单位有计算机100台左右&#xff0c;原来都是在192.16…

使用Docsify搭建Markdown文件服务器

使用docsify快速生成文档网站1. 概述2. 安装 docsify-cli 工具3. 初始化项目4. 本地预览5. 多页文档6. 定制导航栏6.1 在index.html中添加导航栏6.2 添加导航栏配置文件6.3 下拉导航栏7. 封面设置7.1 设置封面参数7.2 自定义封面背景7.3 将封面设置为首页配置项elrepomaxLevell…

DirectX903D 颜色

颜色 颜色表示 颜色用RGB三元组表示。为红色&#xff08;red&#xff09;绿色&#xff08;Green&#xff09;蓝色&#xff08;Blue&#xff09;。 RGB数据可用两种不同的结构来保存。 1 D3DCOLOR结构 与DWORD类型完全相同。共有32位。各位被 分成四个8位项&#xff08;sectio…

JAVA SHA1 加密 对应 c# SHA1 加密

java: 1 public static String SHA1(String decript) {2 try {3 MessageDigest digest MessageDigest.getInstance("SHA-1");4 digest.update(decript.getBytes("UTF-8"));5 byte[] messageDigest dige…

VLAN设置错误,导致部分用户无法上网

一、事由&#xff1a; 单位的思科3560交换机安装到位&#xff0c;加班到夜里12点&#xff0c;测试了一下&#xff0c;怎么有些用户PING不到了呢&#xff1f;难道集体关机了吗&#xff1f;太累了&#xff0c;准备明天处理。二、问题&#xff1a; 第二天早上&#xff0…

JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)

第一&#xff1a; 限制只能是整数 [js] view plaincopy <input type "text" name "number" id number οnkeyup "if(! /^d$/.test(this.value)){alert(只能整数);this.value;}" /> 如果不是整数就直接alert 第二&#xff1a; 限制是两位…

npm包开发测试与发布

NPM 包开发测试与发布NPM 包开发测试与发布引言1. 开发步骤1.1. 项目创建1.2. 工具类功能实现1.3. ts文件编译2. npm包本地测试2.1. 将npm包文件引入项目2.2. npm包功能测试3. 发布4. 注意事项我的NPM包NPM 包开发测试与发布 引言 在项目开发过程中&#xff0c;有时会遇到在多…

Jquery php 点击td变成input,修改后失去焦点发送数据

html部分 <Td><?php echo $row[bigclassid]?></Td> <td height"25" width"241" class"bigclassname"><?php echo $row[bigclassname]?></a></td> Js部分 <script> /**//* * 说明&#xff1…

美元加息怎么“剪羊毛”

我国为什么把美元储备看的如此重要? 我国需要一定的美元储备&#xff0c;不敢把美元随便花出去!1998年亚洲金融危机&#xff0c;东南亚国家为什么抵抗不过对冲基金&#xff0c;就是因为他们手里的美元储备太少&#xff0c;如果你手里美元多&#xff0c;就可以放出美元&#xf…

浅谈企业IT应用的访问方式之:乱想

近来手上的几大块事情&#xff0c;算是大头朝下了。后面可能更多是跟公司的最终用户打交道&#xff0c;一套完整的应用服务体系&#xff0c;不光只是服务器平台的搭建。更重要的是如何让用户觉得确实给他们带来了帮助。 在非洲的一段经历让我们严重认识到一点&#xff0c;其…

java中的基本用法

java中的基本用法 关键字&#xff1a;专门用途的字符串 所有java关键字都是小写英文标识符 java常量 java变量 ■ 作用域&#xff1a;起作用的区域■ 使用前必须先声明&#xff0c;在赋值。使用变量名访问这块区域java程序执行过程 java变量的分类 ■ 局部变量■ 成员变量■…

JavaScript中双叹号(!!)和单叹号(!)

转自&#xff1a;JavaScript中双叹号(!!)作用 经常看到这样的例子&#xff1a; var a&#xff1b; var b!!a; a默认是undefined。!a是true&#xff0c;!!a则是false&#xff0c;所以b的值是false&#xff0c;而不再是undefined&#xff0c;也非其它值&#xff0c;主要是为后续判…

git 初次push

1、本地仓库与远程仓库第一次同步时&#xff0c;一直同步不上 最后 git status ,发现有两个文件没提交 提交后再push即可 2、如果不行&#xff0c;再看一下其他情况 转载于:https://www.cnblogs.com/sanhao/p/10681919.html

简单是可靠的先决条件

2010年4月编程语言排名&#xff0c;C语言重回第1宝座&#xff0c;不禁令人感叹C语言的生命力。 记得有人在几年前发表了一篇C语言已经死了&#xff0c;5个需要忘却它的理由&#xff0c;其后有人发表驳“C语言已经死了”&#xff0c;又有人发表也驳"驳C语言已经死了" …

帮朋友招聘赴北京微软ASP.NET开发工程师

职位要求&#xff1a;1. 3年以上ASP.NET开发经验。2. 有过大型门户网站开发经验。3. 精通ASP.NET WEB开发、Ajax技术&#xff0c;有良好的代码编写习惯。4. 能够熟练运用MVC框架。有意向的朋友可以将简历发到我邮箱&#xff1a;fanmenglifemicrosoftservices.com.cn转载于:http…

xx.xib: error: Illegal Configuration: Safe Area Layout Guide before iOS 9.0报错问题解决

之前是用xcode8.3.3创建的工程最近升级到Xcode9.0 遇见了这个问题 在Xcode 9.0以上 新建xib文件会报错 xx.xib: error: Illegal Configuration: Safe Area Layout Guide before iOS 9.0 是因为在iOS 11上安全距离的变化引起的解决办法如下图&#xff1a;&#xff08;以UITableV…

LuoguP2617 Dynamic Rankings (动态主席树学习理解)

题目地址 题目链接 题解 动态主席树的板子题。动态主席树其实和静态的有很大差别&#xff0c;虽然同样是n个根&#xff0c;但是节点并不能共用&#xff0c;每个根节点表示bit上的一段区间。 所以其实是个树套树的东西来着&#xff0c;外层是bit&#xff0c;内层是主席树。 然后…

Flash气泡回弹效果

好久没有碰过Flash了&#xff0c;今天温习一下AS3.0&#xff0c;做了一个回弹效果&#xff0c;气泡回弹本想着怎么可以定义气泡的不同颜色&#xff0c;这样可以做出更绚丽的效果&#xff0c;或者更进步一&#xff0c;气泡和气泡直接回弹&#xff0c;想了老半天没有想出来&#…