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 相关文章推荐
jquery根据锚点offset值实现动画切换
Sep 11 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
使用RequireJS优化JavaScript引用代码的方法
Jul 01 Javascript
jQuery实现简单下拉导航效果
Sep 07 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
Vue数据驱动模拟实现4
Jan 12 Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 Javascript
Angular中$broadcast和$emit的使用方法详解
May 22 Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
Apr 18 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
Apr 17 Javascript
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
微信小程序 同步请求授权的详解
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代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
php while循环得到循环次数
2013/10/26 PHP
php的dl函数用法实例
2014/11/06 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
逻辑链路控制协议
2016/10/01 面试题
工程造价与管理专业应届生求职信
2013/11/23 职场文书
五好关工委申报材料
2014/05/31 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android