在BAE上使用node.js半年多了,其中碰到了不少因为BAE云环境限制碰到的坑
写下来大家碰到了,也不用那么麻烦的去看好几天代码了,直接对症下药
官方公布的坑有:
- BAE是使用package.json中的script语句来执行代码的,要执行的文件名必须带后缀如 "start" : "node index.js"
- MySql和Mongodb不支持长连接,应在代码中避免掉
- 端口统一为
- 连接MySQL时用户需要主动捕获异常
实践发现的坑有:
- 如果要在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分钟
如大家也发现了上面没有的,回复我补充上去