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 相关文章推荐
js版本A*寻路算法
Dec 22 Javascript
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
js操作输入框提示信息且响应鼠标事件
Mar 25 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
javascript学习总结之js使用技巧
Sep 02 Javascript
jquery通过name属性取值的简单实现方法
Jun 20 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
vue登录路由验证的实现
Dec 13 Javascript
关于HTML5的data-*自定义属性的总结
May 05 Javascript
vue实现评价星星功能
Jun 30 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 list()函数的详解
2013/06/05 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
php compact 通过变量创建数组
2016/11/15 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
JavaScript 实现继承的几种方式
2021/02/19 Javascript
Python3 socket同步通信简单示例
2017/06/07 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
总裁岗位职责
2013/12/04 职场文书
银行求职信范文
2014/05/26 职场文书
村委会贫困证明范本
2014/09/17 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
党员个人总结自评
2015/02/14 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
排查Tomcat进程假死的问题
2022/05/06 Servers