node中Express 動(dòng)態(tài)設(shè)置端口的方法
能夠動(dòng)態(tài)設(shè)置端口的話,調(diào)試起來(lái)會(huì)比較方便,不需要因?yàn)槟J(rèn)端口被占用去改代碼,還可以多開。代碼如下,其實(shí)沒啥難度,只要你了解nodejs里的process模塊,很容易就能寫出來(lái)。
假設(shè)我們想要的命令格式為node app.js 8000
var process = require('process')
var port = (function () {
if (typeof (process.argv[2]) !== 'undefined') { // 如果輸入了端口號(hào),則提取出來(lái)
if (isNaN(process.argv[2])) { // 如果端口號(hào)不為數(shù)字,提示格式錯(cuò)誤
throw 'Please write a correct port number.'
} else { // 如果端口號(hào)輸入正確,將其應(yīng)用到端口
return process.argv[2]
}
} else { // 如果未輸入端口號(hào),則使用下面定義的默認(rèn)端口
return 8080
}
})(),
app.listen(port, function () {
console.log('Example app listening on port ' + port + ' !')
})
實(shí)際上,就是通過process.argv獲得命令內(nèi)容,這個(gè)方法會(huì)以數(shù)組的方式返回命令內(nèi)容,第一項(xiàng)一般都是node,第二項(xiàng)在上面的例子中是入口文件的路徑,第三項(xiàng)就是我們輸入的端口號(hào)啦。
如果你配置了npm的環(huán)境,還需要調(diào)整一下package.json里的參數(shù),比如大部分腳手架里的設(shè)置是這樣的:
"scripts": {
"dev": "node build/dev-server.js",
...
}
這個(gè)時(shí)候,我們只需修改命令為:
"scripts": {
"dev:port": "node build/dev-server.js port",
...
}
即可,使用時(shí)的命令是npm run dev 8000,這里用到的則是npm的自定義變量功能。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js配合node-http-proxy解決本地開發(fā)ajax跨域問題
這篇文章主要介紹了Node.js配合node-http-proxy解決本地開發(fā)ajax跨域問題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
圖解NodeJS實(shí)現(xiàn)登錄注冊(cè)功能
這篇文章主要介紹了NodeJS實(shí)現(xiàn)登錄注冊(cè)功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Express框架實(shí)現(xiàn)簡(jiǎn)單攔截器功能示例
這篇文章主要介紹了Express框架實(shí)現(xiàn)簡(jiǎn)單攔截器功能,結(jié)合實(shí)例形式分析了express框架攔截器相關(guān)功能與使用方法,需要的朋友可以參考下2023-05-05
node.js中的fs.lchown方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.lchown方法使用說(shuō)明,本文介紹了fs.lchown的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node.js中調(diào)用mysql存儲(chǔ)過程示例
這篇文章主要介紹了Node.js中調(diào)用mysql存儲(chǔ)過程示例,本文在windows環(huán)境測(cè)試通過,本文一并給出了創(chuàng)建數(shù)據(jù)庫(kù)、錄入數(shù)據(jù)、創(chuàng)建存儲(chǔ)過程、調(diào)用存儲(chǔ)過程等例子,需要的朋友可以參考下2014-12-12

