node中Express 动态设置端口的方法
短信预约 -IT技能 免费直播动态提醒
能够动态设置端口的话,调试起来会比较方便,不需要因为默认端口被占用去改代码,还可以多开。代码如下,其实没啥难度,只要你了解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的自定义变量功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341