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 相关文章推荐
关于使用runtimeStyle属性问题讨论文章
Mar 08 Javascript
javascript preload&lazy load
May 13 Javascript
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
Js与下拉列表处理问题解决
Feb 13 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
jQuery css() 方法动态修改CSS属性
Sep 25 Javascript
简单实现jquery隔行变色
Nov 09 jQuery
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 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
PHP4引用文件语句的对比
2006/10/09 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
ES6 十大特性简介
2020/12/09 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
C#基础面试题
2016/10/17 面试题
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
土木工程应届生自荐信
2013/09/24 职场文书
企业治理工作自我评价
2013/09/26 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
车队司机自我鉴定
2014/03/02 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python