博客: http://liteneo.com/2014/07/29/play-with-jae/
京东云擎(JAE)目前的的限制实在是太宽松了,留给我们很大的玩(zhe)耍(teng)空间,在此我用几行 Node.js 代码抛砖引玉
Web Console(网络控制台)
Web Console 允许直接通过浏览器执行服务器 shell 命令,使用 console-io 模块只需要几行代码即可搭建:
var webconsole = require('console-io');
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
webconsole(server);
app.use(express.static('./node_modules/console-io'));
server.listen(process.env.PORT || 1337);
部署在 JAE 上的地址:http://terminal.jd-app.com/ ,大家想可以把它当作一个只有控制台的 Linux 系统,想怎么玩就怎么玩,不过由于 JAE 的限制,用户只对 $HOME 文件夹有写入权限,无法执行 bash 文件等等,但是也是很高的可玩性的,在此我就不多说了
Web Filesystem(网络文件管理器)
Web Filesystem 可以通过浏览器管理服务器上的文件系统,使用 Express 团队的开发的模块 serve-index 就可以轻松实现:
var express = require('express');
var serveIndex = require('serve-index');
var app = express();
app.use(serveIndex('/', {'icons': true, hidden: true}))
app.use(express.static('/'));
app.listen(process.env.PORT || 1337);
使用 serve-index 列出根目录的文件系统,再通过 express.static 将所有根目录下的文件变成资源文件,就可以查看和下载所有文件了 部署地址:http://filesystem.jd-app.com/
让 JAE 支持 Koa.js
其实就是让 JAE 支持 0.11.9 以上的 Node 版本,因为 Koa.js 使用了只有 0.11.9 以上版本 Node 的新特性 generator,以解决 callback hell 问题
JAE 提供的 Node 版本号为 0.10.15,显然是无法部署基于 Koa.js 框架的应用的。其实让 JAE 支持最新版本的 Node 也很简单,那就是自己提供最新版本的 Node ,Node.js 官网提供了编译好的各平台的二进制文件,而且除去 npm 就只有一个单个文件,部署非常方便,比如我下载了最新版本的 Node (v0.11.13) for linux-x64 ,解压出 Node 文件放在应用的 vendor 文件夹,然后修改 Procfile 文件为 web: ./vendor/node --harmony app.js
,然后像普通的 Node 应用一样部署即可,测试代码如下:
var koa = require('koa');
var app = koa();
app.use(function *(){
this.body = 'Hello Koa';
});
app.listen(process.env.PORT || 1337);
部署地址:http://koatest.jd-app.com/ 这个没什么好说的,仅仅只是一个测试