summaryrefslogtreecommitdiff
path: root/share/server
diff options
context:
space:
mode:
authorJohn Christopher Anderson <jchris@apache.org>2009-01-24 05:17:50 +0000
committerJohn Christopher Anderson <jchris@apache.org>2009-01-24 05:17:50 +0000
commit9b83ec394c830ce4f01fa693179c01826859b6e0 (patch)
tree3c1c63e10643d34b99d8595824acb9ad12b111f6 /share/server
parent7e6f05f3e5946feb7628f13360852e647f297df3 (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.js15
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);