exports.app = function(env) { var req = new Request(env), res = new Response(); if (req.isPost()) { var params = req.params(); for (var i in params) { res.setHeader("Content-Type", "text/plain"); if (typeof params[i] === "string") res.write(i + " => " + params[i] + "\n"); else { for (var j in params[i]) res.write("> " + j + " => " + params[i][j] + "\n"); } } } else { res.write('<form action="" method="post" enctype="multipart/form-data">') res.write('<input type="file" name="foo" value="">'); res.write('<input type="text" name="bar" value="baz">'); res.write('<input type="submit" value="Upload">'); res.write('</form>'); } return res.finish(); }
map["/"] = function(request) { var res = new Response(); res.write('<input type="text" id="m" value="hello">'); res.write('<input type="button" value="Send" onclick="document.getElementById(\'r\').src=\'send?message=\'+encodeURIComponent(document.getElementById(\'m\').value);">'); res.write('<iframe id="r"></iframe>'); res.write('<a href="listen" target="_blank">listen</a>'); res.write('<input value="listener" type="button" onclick="var f = document.createElement(\'iframe\'); f.src = \'listen\'; document.body.appendChild(f);">'); return res.finish(); }
exports.handle = function(env) { var request = new Request(env); var response = new Response(); var zazlenv = {}; zazlenv["REQUEST_METHOD"] = env["REQUEST_METHOD"]; zazlenv["URL_PATH"] = env["PATH_INFO"]; zazlenv["PATH_INFO"] = env["PATH_INFO"]; zazlenv["QUERY_STRING"] = env["QUERY_STRING"] || ""; zazlenv["CONTENT_TYPE"] = env["CONTENT_TYPE"] || ""; zazlenv["CONTENT_LENGTH"] = env["CONTENT_LENGTH"] || ""; zazlenv["SERVER_NAME"] = env["SERVER_NAME"] || ""; zazlenv["SERVER_PORT"] = env["SERVER_PORT"] || ""; zazlenv["SERVER_PROTOCOL"] = env["SERVER_PROTOCOL"] || ""; zazlenv["GATEWAY_INTERFACE"] = "CGI/1.1"; zazlenv["SERVER_SOFTWARE"] = "Jack/Zazl/0.1"; zazlenv["PATH_TRANSLATED"] = env["PATH_INFO"] || ""; zazlenv["REMOTE_HOST"] = env["REMOTE_ADDR"] || ""; zazlenv["REMOTE_ADDR"] = env["REMOTE_ADDR"] || ""; zazlenv["REMOTE_USER"] = "******"; zazlenv["AUTH_TYPE"] = "Unknown"; zazlenv["jsengine"] = "commonjs"; for (var i in env) { if (i.indexOf("HTTP_") == 0) { zazlenv[i] = env[i]; } } zazlenv["PARAMETERS"] = request.params(); var responseJson = dtlapp(zazlenv); if (responseJson != null) { var responseData = eval("("+responseJson+")"); response.status = responseData.status; for (var headerName in responseData.headers) { response.setHeader(headerName, responseData.headers[headerName]); } response.write(responseData.renderedResponse); return response.finish(); } else { var fileResponse = fileHandler(env); if (fileResponse.status == 404) { fileResponse = zazlFileHandler(env); } return fileResponse; } }
map["/send"] = function(request) { var res = new Response(), message = new Request(request).params("message"); var total = sessions.length; sessions = sessions.filter(function(session) { try { session.write("received: " + message + "<br />"); } catch (e) { return false; } return true; }); res.write("sent '" + message + "' to " + sessions.length + " clients, " + (total - sessions.length) + " closed."); return res.finish(); }