diff --git a/lib/server/rest.js b/lib/server/rest.js index 09e331e5..f4310339 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -49,46 +49,45 @@ * @param response * @param callback */ - exports.api = function(request, response, callback) { - var apiURL, name, ret, + exports.api = function(request, response, next) { + var apiURL, name, is, regExp, params = { request : request, response : response, }; - if (request && response) { - apiURL = CloudFunc.apiURL; - name = ponse.getPathName(request); - ret = Util.isContainStr(name, apiURL); - - if (ret) { - params.name = Util.rmStrOnce(name, apiURL) || '/'; - - sendData(params, function(error, options, data) { - params.gzip = !error; - - if (!data) { - data = options; - options = {}; - } - - if (options.name) - params.name = options.name; - - if (options.query) - params.query = options.query; - - if (error) - ponse.sendError(error, params); - else - ponse.send(data, params, options.notLog); - }); - } - } - if (!ret && callback) - callback(); + Util.checkArgs(arguments, ['request', 'response', 'next']); - return ret; + apiURL = CloudFunc.apiURL; + name = ponse.getPathName(request); + regExp = '^' + apiURL, + is = name.match(regExp); + + if (!is) { + next(); + } else { + params.name = Util.rmStrOnce(name, apiURL) || '/'; + + sendData(params, function(error, options, data) { + params.gzip = !error; + + if (!data) { + data = options; + options = {}; + } + + if (options.name) + params.name = options.name; + + if (options.query) + params.query = options.query; + + if (error) + ponse.sendError(error, params); + else + ponse.send(data, params, options.notLog); + }); + } }; /**