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笔记 String类replace函数的一些事
Sep 22 Javascript
jQuery基本过滤选择器使用介绍
Apr 18 Javascript
jQuery中ajax的post()方法用法实例
Dec 26 Javascript
javascript中SetInterval与setTimeout的定时器用法
Aug 24 Javascript
深入分析Javascript事件代理
Jan 30 Javascript
javascript html5摇一摇功能的实现
Apr 19 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
原生js实现自由拖拽弹窗代码demo
Jun 29 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
JS数组方法concat()用法实例分析
Jan 18 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调用三种数据库的方法(2)
2006/10/09 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
requireJS使用指南
2016/04/27 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
python rsa 加密解密
2017/03/20 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python对excel文档去重及求和的实例
2018/04/18 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
keras实现多种分类网络的方式
2020/06/11 Python
求职简历自荐信
2013/10/20 职场文书
应届医学毕业生求职信分享
2013/12/02 职场文书
公开承诺书格式
2014/05/21 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
教师节祝酒词
2015/08/11 职场文书