From a1eba23ee84eabf75405ece0272edb0c5b4226a1 Mon Sep 17 00:00:00 2001 From: visionmedia Date: Wed, 6 Jan 2010 08:42:01 -0800 Subject: [PATCH] Fixed issues introduced by the node url module changes. Closes 126. Everything is good to go now! should run fine. all specs pass. --- lib/express/core.js | 2 +- lib/express/helpers.js | 9 +++++---- lib/express/pages/not-found.js | 2 +- lib/express/plugins/common-logger.js | 2 +- lib/express/plugins/profiler.js | 2 +- lib/express/request.js | 2 +- spec/spec.plugins.method-override.js | 4 ++-- spec/spec.request.js | 2 +- 8 files changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/express/core.js b/lib/express/core.js index b72a677111..89fd79ab1e 100644 --- a/lib/express/core.js +++ b/lib/express/core.js @@ -147,7 +147,7 @@ Router = Class({ match: function(route) { if (this.request.method.toLowerCase() == route.method) - if (this.request.captures = this.request.url.path.match(route.path)) { + if (this.request.captures = this.request.url.pathname.match(route.path)) { this.mapParams(route) return true } diff --git a/lib/express/helpers.js b/lib/express/helpers.js index e3e3e124c4..d1a7fc2978 100644 --- a/lib/express/helpers.js +++ b/lib/express/helpers.js @@ -135,15 +135,16 @@ exports.parseNestedParams = function(params) { } /** - * Parse params _string_ into a nested hash. + * Parse params _str_ into a nested hash. * - * @param {string} string + * @param {string} str * @return {hash} * @api public */ -exports.parseParams = function(string) { - return exports.parseNestedParams($(string.split('&')).reduce({}, function(params, pair){ +exports.parseParams = function(str) { + if (typeof str !== 'string') return + return exports.parseNestedParams($(str.split('&')).reduce({}, function(params, pair){ pair = pair.split('=') params[pair[0]] = pair[1] return params diff --git a/lib/express/pages/not-found.js b/lib/express/pages/not-found.js index 3e1fd109d8..e2891d857a 100644 --- a/lib/express/pages/not-found.js +++ b/lib/express/pages/not-found.js @@ -6,7 +6,7 @@ var style = require('express/pages/style').style exports.render = function(request) { request.contentType('html') var method = request.method.toLowerCase(), - path = request.url.path || '/' + path = request.url.pathname || '/' return ' \n\ \n\ Express -- Not Found \n\ diff --git a/lib/express/plugins/common-logger.js b/lib/express/plugins/common-logger.js index 579d0a39ea..2d0f3010ae 100644 --- a/lib/express/plugins/common-logger.js +++ b/lib/express/plugins/common-logger.js @@ -41,7 +41,7 @@ exports.CommonLogger = Plugin.extend({ '-', '-', '[' + format(new Date) + ']', - '"' + event.request.method.toUpperCase() + ' ' + (event.request.url.path || '/') + + '"' + event.request.method.toUpperCase() + ' ' + (event.request.url.pathname || '/') + ' HTTP/' + event.request.httpVersion + '"', event.request.response.status, event.request.response.headers['content-length'] || 0].join(' ')) diff --git a/lib/express/plugins/profiler.js b/lib/express/plugins/profiler.js index f451d4870f..e5fc7b2e56 100644 --- a/lib/express/plugins/profiler.js +++ b/lib/express/plugins/profiler.js @@ -18,7 +18,7 @@ exports.Profiler = Plugin.extend({ response: function(event) { puts(event.request.method + ' ' + - event.request.url.path + ': ' + + event.request.url.pathname + ': ' + (Number(new Date) - this.start) + ' ms') } } diff --git a/lib/express/request.js b/lib/express/request.js index 4e26a963f9..c8f4164b66 100644 --- a/lib/express/request.js +++ b/lib/express/request.js @@ -23,7 +23,7 @@ InvalidStatusCode = ExpressError.extend({ InvalidResponseBody = ExpressError.extend({ name: 'InvalidResponseBody', init: function(request) { - this.message = request.method + ' ' + JSON.encode(request.url.path) + ' did not respond with a body string' + this.message = request.method + ' ' + JSON.encode(request.url.pathname) + ' did not respond with a body string' } }) diff --git a/spec/spec.plugins.method-override.js b/spec/spec.plugins.method-override.js index 91b6891f28..9a12eb6994 100644 --- a/spec/spec.plugins.method-override.js +++ b/spec/spec.plugins.method-override.js @@ -12,14 +12,14 @@ describe 'Express' put('/user', function(){ return 'updated user' }) - post('/user', { url: { params: { _method: 'put' }}}).body.should.eql 'updated user' + post('/user', { body: '_method=put', headers: { 'content-type': 'application/x-www-form-urlencoded' }}).body.should.eql 'updated user' end it 'should force _method to lowercase to conform to internal uses' put('/user', function(){ return 'updated user' }) - post('/user', { url: { params: { _method: 'PUT' }}}).body.should.eql 'updated user' + post('/user', { body: '_method=PUT', headers: { 'content-type': 'application/x-www-form-urlencoded' }}).body.should.eql 'updated user' end end end diff --git a/spec/spec.request.js b/spec/spec.request.js index 193d48beed..68eeae0ce3 100644 --- a/spec/spec.request.js +++ b/spec/spec.request.js @@ -158,7 +158,7 @@ describe 'Express' get('/user', function(){ return this.param('page') || 'First page' }) - get('/user?page=2').body.should.eql 'First page' + get('/user').body.should.eql 'First page' get('/user?page=2').body.should.eql '2' end