在BAE上使用node.js半年多了,其中碰到了很多由於BAE雲環境限制碰到的坑node
寫下來你們碰到了,也不用那麼麻煩的去看好幾天代碼了,直接對症下藥mysql
官方公佈的坑有:web
- BAE是使用package.json中的script語句來執行代碼的,要執行的文件名必須帶後綴如 "start" : "node index.js"
- MySql和Mongodb不支持長鏈接,應在代碼中避免掉
- 端口統一爲18080
- 鏈接MySQL時用戶須要主動捕獲異常
實踐發現的坑有:sql
- 若是要在node中使用mysql,得使用BAE給提供的mysql module纔可對接上BAE的mysql庫。(地址:http://bcs.duapp.com/baev3demo/nodejs-web/mysql.tgz)
- 在package.json中不能有各類dependencies,否則部署會出錯,得在本地npm install安裝好後把package.json中的dependencies刪除掉
- 不能加運行環境如--production,使得process.nev.NODE_ENV得在代碼中設定
- 若是在管理平臺上代碼錯誤,狀態更爲「異常」,這時,即便commit最新的代碼,可是不會顯示「快捷發佈」選項,在這種狀態下即便重啓,也仍是執行舊的錯誤代碼,一直不會顯示「快捷發佈」按鈕來更改錯誤;解決方法是將該部署「暫停」,再當即「開始」,則會看到有新版本提示的「快捷發佈」,來部署新的代碼,可是兩次暫停間要隔15分鐘
如你們也發現了上面沒有的,回覆我補充上去npm