node中Express 动态设置端口的方法
能够动态设置端口的话,调试起来会比较方便,不需要因为默认端口被占用去改代码,还可以多开。代码如下,其实没啥难度,只要你了解nodejs里的process模块,很容易就能写出来。
假设我们想要的命令格式为nodeapp.js8000
varprocess=require('process') varport=(function(){ if(typeof(process.argv[2])!=='undefined'){//如果输入了端口号,则提取出来 if(isNaN(process.argv[2])){//如果端口号不为数字,提示格式错误 throw'Pleasewriteacorrectportnumber.' }else{//如果端口号输入正确,将其应用到端口 returnprocess.argv[2] } }else{//如果未输入端口号,则使用下面定义的默认端口 return8080 } })(), app.listen(port,function(){ console.log('Exampleapplisteningonport'+port+'!') })
实际上,就是通过process.argv获得命令内容,这个方法会以数组的方式返回命令内容,第一项一般都是node,第二项在上面的例子中是入口文件的路径,第三项就是我们输入的端口号啦。
如果你配置了npm的环境,还需要调整一下package.json里的参数,比如大部分脚手架里的设置是这样的:
"scripts":{ "dev":"nodebuild/dev-server.js", ... }
这个时候,我们只需修改命令为:
"scripts":{ "dev:port":"nodebuild/dev-server.jsport", ... }
即可,使用时的命令是npmrundev8000,这里用到的则是npm的自定义变量功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。