能夠動態(tài)設(shè)置端口的話,調(diào)試起來會比較方便,不需要因為默認(rèn)端口被占用去改代碼,還可以多開。代碼如下,其實沒啥難度,只要你了解nodejs里的process模塊,很容易就能寫出來。
假設(shè)我們想要的命令格式為node app.js 8000
var process = require('process') var port = (function () { if (typeof (process.argv[2]) !== 'undefined') { // 如果輸入了端口號,則提取出來 if (isNaN(process.argv[2])) { // 如果端口號不為數(shù)字,提示格式錯誤 throw 'Please write a correct port number.' } else { // 如果端口號輸入正確,將其應(yīng)用到端口 return process.argv[2] } } else { // 如果未輸入端口號,則使用下面定義的默認(rèn)端口 return 8080 } })(), app.listen(port, function () { console.log('Example app listening on port ' + port + ' !') })
實際上,就是通過process.argv獲得命令內(nèi)容,這個方法會以數(shù)組的方式返回命令內(nèi)容,第一項一般都是node,第二項在上面的例子中是入口文件的路徑,第三項就是我們輸入的端口號啦。
如果你配置了npm的環(huán)境,還需要調(diào)整一下package.json里的參數(shù),比如大部分腳手架里的設(shè)置是這樣的:
"scripts": { "dev": "node build/dev-server.js", ... }
這個時候,我們只需修改命令為:
"scripts": { "dev:port": "node build/dev-server.js port", ... }
即可,使用時的命令是npm run dev 8000,這里用到的則是npm的自定義變量功能。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com