diff options
author | John Christopher Anderson <jchris@apache.org> | 2009-01-24 05:17:50 +0000 |
---|---|---|
committer | John Christopher Anderson <jchris@apache.org> | 2009-01-24 05:17:50 +0000 |
commit | 9b83ec394c830ce4f01fa693179c01826859b6e0 (patch) | |
tree | 3c1c63e10643d34b99d8595824acb9ad12b111f6 /share/server | |
parent | 7e6f05f3e5946feb7628f13360852e647f297df3 (diff) |
Improve show/list API and send external responses without chunked as it's not needed.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@737304 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/server')
-rw-r--r-- | share/server/main.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/share/server/main.js b/share/server/main.js index d2b9b7e0..8e1f91cd 100644 --- a/share/server/main.js +++ b/share/server/main.js @@ -147,7 +147,7 @@ respondWith = function(req, responders) { var bestKey = keysByMime[bestMime]; var rFunc = responders[bestKey]; if (rFunc) { - var resp = rFunc(); + var resp = maybeWrapResponse(rFunc()); resp["headers"] = resp["headers"] || {}; resp["headers"]["Content-Type"] = bestMime; return resp; @@ -369,10 +369,19 @@ while (cmd = eval(readline())) { } } +function maybeWrapResponse(resp) { + var type = typeof resp; + if ((type == "string") || (type == "xml")) { + return {body:resp}; + } else { + return resp; + } +}; + function runRenderFunction(renderFun, args) { try { - var result = renderFun.apply(null, args); - respond(result); + var resp = renderFun.apply(null, args); + respond(maybeWrapResponse(resp)); } catch(e) { log("function raised error: "+e.toString()); log("stacktrace: "+e.stack); |