node中Express 动态设置端口的方法


Posted in Javascript onAugust 04, 2017

能够动态设置端口的话,调试起来会比较方便,不需要因为默认端口被占用去改代码,还可以多开。代码如下,其实没啥难度,只要你了解nodejs里的process模块,很容易就能写出来。

假设我们想要的命令格式为node app.js 8000

var process = require('process')

var port = (function () {
 if (typeof (process.argv[2]) !== 'undefined') { // 如果输入了端口号,则提取出来
  if (isNaN(process.argv[2])) { // 如果端口号不为数字,提示格式错误
   throw 'Please write a correct port number.'
  } else { // 如果端口号输入正确,将其应用到端口
   return process.argv[2]
  }
 } else { // 如果未输入端口号,则使用下面定义的默认端口
  return 8080
 }
})(),

app.listen(port, function () { 
 console.log('Example app listening on port ' + port + ' !')
})

实际上,就是通过process.argv获得命令内容,这个方法会以数组的方式返回命令内容,第一项一般都是node,第二项在上面的例子中是入口文件的路径,第三项就是我们输入的端口号啦。

如果你配置了npm的环境,还需要调整一下package.json里的参数,比如大部分脚手架里的设置是这样的:

"scripts": {
  "dev": "node build/dev-server.js",
  ...
}

这个时候,我们只需修改命令为:

"scripts": {
  "dev:port": "node build/dev-server.js port",
  ...
}

即可,使用时的命令是npm run dev 8000,这里用到的则是npm的自定义变量功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
很全的显示阴历(农历)日期的js代码
Jan 01 Javascript
JavaScript实现复制功能各浏览器支持情况实测
Jul 18 Javascript
固定表格行列(expression)在IE下适用
Jul 25 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
Dec 31 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
JavaScript reduce和reduceRight详解
Oct 24 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
Mar 11 Javascript
微信小程序如何实现精确的日期时间选择器
Jan 21 Javascript
微信小程序 同步请求授权的详解
Aug 04 #Javascript
微信小程序 转发功能的实现
Aug 04 #Javascript
Vue计算属性的使用
Aug 04 #Javascript
JS+Ajax实现百度智能搜索框
Aug 04 #Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 #Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 #Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 #Javascript
You might like
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
js中style.display=""无效的解决方法
2014/10/30 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
Python中replace方法实例分析
2014/08/20 Python
python使用any判断一个对象是否为空的方法
2014/11/19 Python
python求解水仙花数的方法
2015/05/11 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
Python中if有多个条件处理方法
2020/02/26 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
早读课迟到检讨书
2014/09/25 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
Linux中文件的基本属性介绍
2022/06/01 Servers
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android