function routeRequest(adapterRequest, adapterResponse) { var util = require('util'); var Router = require('router'); var Request = require('request'); var Response = require('response'); var req = new Request(adapterRequest); var res = new Response(adapterResponse); //cross-reference request and response req.res = res; res.req = req; req.__init = Date.now(); app.emit('request', req, res); var router = new Router(routes); util.propagateEvents(router, req, 'pre-route match-route no-route'); //so routes can access `this.params` with combined request params req.on('match-route', function(route) { //we use Object.create so we don't actually mutate the query params object var queryParams = Object.create(req.query()); var routeParams = route.params; route.params = Object.assign(queryParams, routeParams); }); //todo: move to request lib? req.on('no-route', function(routeData) { var response = routeData.response || app.cfg('response_404'); if (response) { res.end(response.status || '404', response.type, response.body); } else { res.end('404', 'Not Found'); } }); //get raw (encoded) path var path = req.url('rawPath'); return router.route(req.method(), path, req, res); }
submitHandler: function(form) { $subBtn.addClass('sub-ing').val("提交中..."); REQUEST.form(form, REQUEST.url('updatePassword'), {}, function(res) { if (res.resultCode == 0) { TIP.show(1, "密码修改成功"); setTimeout((function() { location.href = "login.html" }), 500); } else { TIP.show(2, "操作失败"); $subBtn.removeClass('sub-ing').val("确认提交"); } }); },