那些在BAE上部署node.js碰到的坑

在BAE上使用node.js半年多了,其中碰到了不少因为BAE云环境限制碰到的坑

写下来大家碰到了,也不用那么麻烦的去看好几天代码了,直接对症下药

  官方公布的坑有

  1. BAE是使用package.json中的script语句来执行代码的,要执行的文件名必须带后缀如 "start" : "node index.js"
  2. MySql和Mongodb不支持长连接,应在代码中避免掉
  3. 端口统一为18080
  4. 连接MySQL时用户需要主动捕获异常

  实践发现的坑有

  1. 如果要在node中使用mysql,得使用BAE给提供的mysql module才可对接上BAE的mysql库。(地址:http://bcs.duapp.com/baev3demo/nodejs-web/mysql.tgz)
  2. 在package.json中不能有各种dependencies,不然部署会出错,得在本地npm install安装好后把package.json中的dependencies删除掉
  3. 不能加运行环境如--production,使得process.nev.NODE_ENV得在代码中设定
  4. 如果在管理平台上代码错误,状态更为“异常”,这时,即使commit最新的代码,但是不会显示“快捷发布”选项,在这种状态下即使重启,也还是执行旧的错误代码,一直不会显示“快捷发布”按钮来更改错误;解决方法是将该部署“暂停”,再立即“开始”,则会看到有新版本提示的“快捷发布”,来部署新的代码,但是两次暂停间要隔15分钟

 

如大家也发现了上面没有的,回复我补充上去

posted @ 2015-02-04 16:45 纸异兽 阅读(...) 评论(...) 编辑 收藏