docs: function (request, response, name) {
  
  			// 初期设置
  			req = request, res = response;
  			parse = req.parse, method = req.method;
  
  			query = parse.query, reqCookie = parse.cookies, reqRoute = parse.pathname, client = req.client;
  			route = name.route.join(SLASH), typeName = name.type, pathName = name.path;
  
  			if (name.route === 'error' || parse.error) {
  				console.log(parse.error);
  				Coralian.logger.err("request route : " + name.route);
  			} else {
  				Coralian.logger.log("request route : " + name.route);
  			}
  
  			var notOnError = !parse.error;
  
  			if (notOnError) { // 如果传入的 parse 对象中未包含 error 对象，则正常执行
  				var path = reqRoute.slice(1); // 去掉最前面的 “/”
  				if (String.isEmpty(path)) {
  					path = INDEX;
  				}
  
  				var question = path.indexOf(QUESTION);
  				if (0 < question) {
  					path = path.slice(0, question);
  				}
  				// 到这里， path 就不含任何 和 路径无关的东西了
  				var url = path.split(SLASH);
  
  				var lastUrl = Array.last(url),
  					lastName = Array.last(name.route);
  				if (lastUrl === lastName || getRoute("/" + lastUrl) === ("/" + lastName)) {// 所请求的不包含 action、para，只有 route
  					actionName = INDEX;
  					paras = paras.split(split);
  				} else if (actions[lastUrl]) { // 取得 [route..., action]
  					actionName = lastUrl;
  					paras = paras.split(split);
  				} else { // 否则为 [route..., action, para]
  					actionName = Array.last(url, 2);
  					paras = lastUrl.split(split);
  					if (url.length !== 2) { // 最后为[route..., para]
  						if (!actions[actionName]) {
  							paras.unshift(actionName);
  							actionName = INDEX;
  						}
  					} else { // [route, para]
  						actionName = INDEX;
  					}
  				}
  			} else {
  				actionName = INDEX;
  				let err = parse.error;
  				switch (typeOf(err)) {
  					case 'object':
  						attrs = err;
  						break;
  					case 'number':
  						attrs.code = err;
  						break;
  					case 'string':
  						let nErr = Math.trunc(err);
  						if (typeIs(nErr, 'NaN')) {
  							Error.errorCast(err, Number);
  						}
  						attrs.code = nErr;
  					default:
  						Error.unsupportedType(err);
  				}
  			}
  			return true;
  		}