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 相关文章推荐
javascript js cookie的存储,获取和删除
Dec 29 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
jQuery 动态云标签插件
Nov 11 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
Jan 28 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
May 21 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
JS和Canvas实现图片的预览压缩和上传功能
Mar 30 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 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动态图像的创建
2006/10/09 PHP
PHP脚本数据库功能详解(中)
2006/10/09 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
一套C#面试题
2013/10/09 面试题
若干个Java基础面试题
2015/05/19 面试题
CNC数控操作工岗位职责
2013/11/19 职场文书
婚前保证书
2014/04/29 职场文书
广播节目策划方案
2014/05/23 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
Golang 切片(Slice)实现增删改查
2022/04/22 Golang
MYSQL常用函数介绍
2022/05/05 MySQL