MCPcopy Index your code
hub / github.com/totaljs/framework / async_middleware

Function async_middleware

index.js:19149–19225  ·  view source on GitHub ↗
(index, req, res, middleware, callback, options, controller)

Source from the content-addressed store, hash-verified

19147}
19148
19149function async_middleware(index, req, res, middleware, callback, options, controller) {
19150
19151 if (res.success || res.headersSent || res.finished) {
19152 req.$total_route && req.$total_success();
19153 callback = null;
19154 return;
19155 }
19156
19157 var name = middleware[index++];
19158 if (!name)
19159 return callback && callback(req, res);
19160
19161 var item = F.routes.middleware[name];
19162 if (!item) {
19163 F.error('Middleware not found: ' + name, null, req.uri);
19164 return async_middleware(index, req, res, middleware, callback, options, controller);
19165 }
19166
19167 var output;
19168 var $now;
19169
19170 if (CONF.logger)
19171 $now = Date.now();
19172
19173 if (item.$newversion) {
19174 var opt = req.$total_middleware;
19175 if (!index || !opt) {
19176 opt = req.$total_middleware = new MiddlewareOptions();
19177 opt.req = req;
19178 opt.res = res;
19179 opt.middleware = middleware;
19180 opt.options = options || EMPTYOBJECT;
19181 opt.controller = controller;
19182 opt.callback2 = callback;
19183 opt.next = function(err) {
19184 CONF.logger && F.ilogger(getLoggerMiddleware(name), req, $now);
19185 var mid = req.$total_middleware;
19186 if (err === false) {
19187 req.$total_route && req.$total_success();
19188 req.$total_middleware = null;
19189 callback = null;
19190 } else if (err instanceof Error || err instanceof ErrorBuilder) {
19191 res.throw500(err);
19192 req.$total_middleware = null;
19193 callback = null;
19194 } else
19195 async_middleware(mid.index, mid.req, mid.res, mid.middleware, mid.callback2, mid.options, mid.controller);
19196 };
19197 }
19198
19199 opt.index = index;
19200 output = item(opt);
19201
19202 } else {
19203 output = item.call(framework, req, res, function(err) {
19204 CONF.logger && F.ilogger(getLoggerMiddleware(name), req, $now);
19205 if (err === false) {
19206 req.$total_route && req.$total_success();

Callers 2

index.jsFile · 0.85
extend_requestFunction · 0.85

Calls 2

callbackFunction · 0.85
getLoggerMiddlewareFunction · 0.85

Tested by

no test coverage detected