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的防止大图片撑破页面的实现代码(立即缩放)
Oct 24 Javascript
jQuery数组处理代码详解(含实例演示)
Feb 03 Javascript
如何调试异步加载页面里包含的js文件
Oct 30 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
带有定位当前位置的百度地图前端web api实例代码
Jun 21 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 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 判断字符串中是否包含html标签
2014/02/17 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
跟老齐学Python之类的细节
2014/10/13 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
详解Python中的静态方法与类成员方法
2017/02/28 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
python em算法的实现
2020/10/03 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
一些Solaris面试题
2015/12/22 面试题
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
函授本科毕业生自我鉴定
2013/10/16 职场文书
自主招生自荐信指南
2014/02/04 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
2015大学迎新标语
2015/07/16 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
如何写好竞聘报告
2019/04/03 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
Python之matplotlib绘制饼图
2022/04/13 Python