Jsdo.itでサーバサイドJavaScriptを実現
とりあえず、実現できた
おはようございます。息子に付けられて顔の傷がなかなか治らない@kjunichiです。 念願のjsdoitでサーバサイドJavaScriptが実現しました。
Google App Engine側のソース
#!/usr/bin/env ringo var actions = require("./actions"); var response = require("ringo/jsgi/response"); var mustache = require('ringo/mustache'); // Minimalistic request dispatcher in lieu of a proper framework exports.app = function(request) { var path = request.pathInfo.slice(1) || "index"; // 1. resolve against actions if (typeof actions[path] === "function") { return actions[path](request); } // 2. resolve against public folder var resource = getResource("./public/" + path); if (resource.exists()) { return response.static(resource); } importPackage( java.net); importPackage( java.io); var sourceJs = "http://jsdo.it/kjunichi/"+path+"/js"; var url = new java.net.URL(sourceJs); try { var ucon = url.openConnection(); var istream = ucon.getInputStream(); var isr = new java.io.InputStreamReader(istream, "utf-8"); var br = new java.io.BufferedReader(isr); var line = ""; var buf = ""; while ((line = br.readLine()) != null) { buf=buf+line+"\n"; } // 読み込んだJavaScriptを実行する。 var result=""; // jsdo.it側でjsdoitServerFuncを定義する。 eval(buf); result = jsdoitServerFunc(request); return result; } catch(e) { return response.notFound(e); } // 3. return 404 response return response.notFound(request.pathInfo); } // main script to start application if (require.main == module) { require("ringo/httpserver").main(module.id); }
関連記事
- #gae/j #javascript Google App EngineでサーバサイドJavaScript
- RingoJS v0.8でGETやPOSTのパラメータを取得するには #javascript #gae/j
- #ringojs Google App EngineでJavaScriptでURLFetch編
- RingoJS上でJavaScriptを扱うには
- RingoJSをGoogle App Engineで動かす #2013