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 操作符实例代码
Oct 24 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
javascrip关于继承的小例子
May 10 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
JS数组(Array)处理函数整理
Dec 07 Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
Vue-Router2.X多种路由实现方式总结
Feb 09 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 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
模仿OSO的论坛(二)
2006/10/09 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
javascript重写alert方法的实例代码
2013/03/29 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
react 组件传值的三种方法
2019/06/03 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
python变量的存储原理详解
2019/07/10 Python
使用python实现多维数据降维操作
2020/02/24 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
ORACLE第二个十问
2013/12/14 面试题
考博自荐信
2013/10/25 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书