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_01_理解内存分配原理分析
Oct 11 Javascript
PHP 与 js的通信(via ajax,json)
Nov 16 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
Nov 22 Javascript
input链接页面、打开新网页等等的具体实现
Dec 30 Javascript
js图片延迟技术一般的思路与示例
Mar 20 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
javascript插件开发的一些感想和心得
Feb 28 Javascript
webpack手动配置React开发环境的步骤
Jul 02 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
puppeteer实现html截图的示例代码
Jan 10 Javascript
详解vue-router导航守卫
Jan 19 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 引用是个坏习惯
2010/03/12 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP常用的小程序代码段
2015/11/14 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
Vue header组件开发详解
2018/01/26 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
python实现画圆功能
2018/01/25 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
小学生家长评语大全
2014/02/10 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
三好学生事迹材料
2014/12/24 职场文书
紫日观后感
2015/06/05 职场文书
消防安全主题班会
2015/08/12 职场文书
入团申请书格式
2019/06/20 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript