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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
extjs form textfield的隐藏方法
Dec 29 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
javascript设计模式之中介者模式学习笔记
Feb 15 Javascript
javascript 中的继承实例详解
May 05 Javascript
vue proxyTable 接口跨域请求调试的示例
Sep 12 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
JS合并两个数组的3种方法详解
Oct 24 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 Javascript
详解Webpack4多页应用打包方案
Jul 16 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
Jul 17 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
农民C键的运用技巧
2020/03/04 星际争霸
php实现水仙花数示例分享
2014/04/03 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python 多线程的实例详解
2017/09/07 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python开头的coding设置方法
2019/08/08 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python中如何打包用户自定义模块
2020/09/23 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
教学大赛获奖感言
2014/01/15 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
2014年路政工作总结
2014/12/10 职场文书
学生保证书
2015/01/16 职场文书
警告通知
2015/04/25 职场文书
高老头读书笔记
2015/06/30 职场文书
小学英语课教学反思
2016/02/15 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL