UNPKG

lazo-next

Version:

A client-server web framework built on Node.js that allows front-end developers to easily create a 100% SEO compliant, component MVC structured web application with an optimized first page load.

50 lines (44 loc) 1.86 kB
define(['hapi'], function (Hapi) { 'use strict'; return function (req, reply) { var payload = req.payload; var componentName = req.params.compName; var callback = payload ? payload.callback : null; var fn_name = req.params.action || 'upload'; var _path = (componentName ? 'components/' + componentName : 'app') + '/server/utilActions'; LAZO.require([_path], function (util) { var fn = util[fn_name]; if (fn) { fn(req, { success: function (ret) { var resp = []; if (callback) { resp.push("<html><head><script>window.parent."); resp.push(callback); resp.push('('); } resp.push(JSON.stringify(ret)); if (callback) { resp.push(');'); resp.push("</script></head><body></body></html>"); } reply(resp.join('')); }, error: function (ret, options) { var error = Hapi.error.internal(ret); if (options && options.statusCode) { error.response.code = options.statusCode; } reply(error); }, done: function () { LAZO.logger.debug('[server.handlers.stream] Handled by application...', _path); } }); } }, function (err) { LAZO.logger.error('[server.handlers.stream] Error loading "%s" module.', _path, err); reply(err); }); }; });