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 autocomplete自动完成插件的的使用方法
Aug 07 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
jquery实现无限分级横向导航菜单的方法
Mar 12 Javascript
javascript实现简单的省市区三级联动
May 14 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
JavaScript正则表达式简单实用实例
Jun 23 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
Vue中使用canvas方法总结
Feb 12 Javascript
Vue中rem与postcss-pxtorem的应用详解
Nov 20 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 array_filter除去数组中的空字符元素
2020/06/21 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
Python构造函数及解构函数介绍
2015/02/26 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
python 自定义对象的打印方法
2019/01/12 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
python pycharm的安装及其使用
2019/10/11 Python
python如何获取apk的packagename和activity
2020/01/10 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
学生励志演讲稿
2014/01/06 职场文书
公司授权委托书
2014/04/04 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
工作简报格式范文
2015/07/21 职场文书
Python实现照片卡通化
2021/12/06 Python