【BAE3.0使用系列】Node.js Runtime简介

Node.js环境采用Node.js v0.10.21和NPM 1.3.11来运行和管理Node.js应用,目前只支持web类型应用,后续会根据需求考虑是否增加worker类型。

Node.js Runtime包括lighttpd和用户自定义的HTTP server,它们之间的通信端口是18080,因此用户自定义的server必须监听18080端口。

注意事项

1. Node.js server监听的端口必须是18080,因为lighttpd和Node.js server之间的通讯端口是18080

2. 通过SVN和GIT上传的代码中不能包括node_modules目录,因为在编译时BAE会先删除node_modules目录然后执行npm install命令

3. package.json中必须配置”scripts”: {“start”: “node xx.js”},用于指定Node.js的启动文件,因为BAE在启动Node.js应用是使用的是npm start命令

4.mysql、mongodb、redis不支持长连接,即mysql server、mongodb server、redis server会自动断开超过30s没有数据传输的连接,mysql、mongodb、redis等sdk的使用具体参考博客《Node.js之SDK的使用——mysql、mongodb、redis》

Node.js Runtime的示例代码

新创建Node.js应用中含有app.conf, package.json和server.js三个文件

1. app.conf是lighttpd的配置文件,必须存在

app.conf用于配置哪些请求由lighttpd自己处理,哪些请求转发给后端的Node.js进程,需要特别注意的是Node.js的server监听的端口必须是18080,因为lighttpd向后端的转发端口是18080

app.conf示例:

handlers:
- url : /
script: index.html
- url : (.*)
script: $1.nodejs

这段app.conf代码是将/请求转到index.html,将其他请求转给Node.js server,注意,转给Node.js server的请求需要在script中配置成.nodejs后缀

2.package.json文件是NPM-Node包管理工具的配置文件,必须存在

Node.js会在发布代码时删除node_modules目录,然后执行npm install命令,会根据package.json文件中的dependencies项下载依赖

Node.js启动是使用npm start命令,会根据package.json中的”scripts”: {“start”: “node xx.js”}项来决定启动那个js文件

用户自定义的库文件不能放在node_modules目录中需要,需要自己新建目录,然后在使用时指定路径

3.server.js是一个简单的Node.js写的HTTP server,可以换成其他名字的.js文件

如果更改server.js的名字,需要在package.json中更新”scripts”: {“start”: “node xx.js”}项

开发指南

Node.js Runtime采用的是原生的Node.js,没有任何限制,所以理论上来说能在本地跑的应用在BAE中也能运行正常。

用户的应用可以在本地通过npm install命令进行编译,然后通过npm start命令进行运行,确定其监听的端口是18080。如果本地运行正常,那么将代码提交到BAE上也会运行正常。

需要注意上传代码时不能包括node_modules目录,如果用到了mysql、mongodb等需要注意下改成BAE的mysql的host、port、username和password

此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

发表评论