在做了一個簡單的Node.js的app後,當然就想要讓他上線看看啊!
在沒有實體IP,沒有足夠的$$的支持下,找雲端平台來建置是一個不錯的解決方案。
Node.js官方有整理了目前支援建置Node.js專案的平台整理。
看了看原本決定要用IBM Bluemix,但是嘗試了老半天,發現他一直給我failed to accept connections within health check timeout這樣的錯誤訊息,嘗試了老半天發現貌似是因為http.listen的關係,但無論怎麼做修改都不法正確部屬上去,也不是十分清楚到底為什麼,有沒有高手可以給小弟解答啊!
最後只好換一個平台來建置,這次選一個看過有人成功部屬相關程式的平台Heroku。
而且他的免費方案也非常親民,但因為沒權限不能安裝他所提供的部屬程式,害我以為完蛋又要碰壁。
還好皇天不負苦心人,在建立應用程式後發現可以使用網頁來連結github部屬,真是太棒了!
馬上來看看怎麼利用網頁連結github部屬Node.js應用程式吧!
首先,到Heroku官網,建立帳號,點選Dashboard。
接著選擇右上角的 + 號來建立應用程式。
建立完應用程式後看到上面的標籤有Deploy的選項,選項中有Github部屬的方法,將heroku帳號與你的GitHub帳號連結就可以直接從Github下載檔案部屬上去囉!
在部屬Node.js過程中,遇到幾個檔案或設定必須注意的,首先是project.json。
{ "name": "Howard's-socket-chat", "version": "1.0.0", "description": "my first socket.io app", "main": "index.js", "scripts": { "start": "node index.js" }, "keywords": [ "chat room", "socket.io" ], "author": "howard-yang", "license": "MIT", "dependencies": { "express": "4.12.4", "socket.io": "1.3.5" }, "engines": { "node": "0.12.x" } }
這之中比較需要注意的參數有main、start來決定node執行的起始點,dependencies則是記錄這個專案有用到那些Node的擴充套件。
這些很重要,因為在部屬過程中,基本上就是看這個檔案來安裝、執行Node.js程式的。
再來就是procfile,這個檔案內容也很簡單。
web: node index.js
就是設定運行時所下的command。
最後就是如果有用到http.listen的話,雖然在本機執行可以直接給參數,但在雲端中記得要使用下面的語法,設定process的參數喔。
http.listen(process.env.PORT || 3000);
歡迎來玩Howard's Chat Room。
想要看如何撰寫的請參考這裡。
很棒很實用哦
回覆刪除實用
回覆刪除