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编程起步(第五课)
Feb 27 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
Jan 24 Javascript
Jquery下:nth-child(an+b)的使用注意
May 28 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
js图片轮播效果实现代码
Apr 18 Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
jQuery多选框选择数量限制方法
Feb 08 Javascript
详解Vue整合axios的实例代码
Jun 21 Javascript
Vue+Django项目部署详解
May 30 Javascript
vue elementUI 表单校验功能之数组多层嵌套
Jun 04 Javascript
详解JS深拷贝与浅拷贝
Aug 04 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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
一个PHP的String类代码
2010/04/20 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
javascript 写类方式之五
2009/07/05 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
用js实现in_array的方法
2013/11/05 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
Vue.js划分组件的方法
2017/10/29 Javascript
JS实现滑动插件
2020/01/15 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
九年级英语教学反思
2014/01/31 职场文书
医学生求职自荐书
2014/06/12 职场文书
2015年入党决心书
2015/02/05 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
无线电知识基础入门篇
2022/02/18 无线电