diff --git a/docs/actions.md b/docs/actions.md index e63026c7..f0ccead8 100644 --- a/docs/actions.md +++ b/docs/actions.md @@ -394,6 +394,7 @@ Additionally the request object has the following methods: * `url_for(route, params, ...)` -- get the URL for a named route, or object * `build_url(path, params)` -- build a fully qualified URL from a path and parameters * `html(fn)` -- generate a string using the HTML builder syntax +* `add_headers(headers)` -- Adds response headers ### @req diff --git a/lapis/nginx.lua b/lapis/nginx.lua index c92d81b1..3e432b04 100644 --- a/lapis/nginx.lua +++ b/lapis/nginx.lua @@ -198,7 +198,6 @@ build_response = function() self.headers[k] = v elseif "table" == _exp_0 then old[#old + 1] = v - self.headers[k] = old else self.headers[k] = { old, diff --git a/lapis/nginx.moon b/lapis/nginx.moon index 1833ca42..34d0b86e 100644 --- a/lapis/nginx.moon +++ b/lapis/nginx.moon @@ -133,7 +133,6 @@ build_response = -> @headers[k] = v when "table" old[#old + 1] = v - @headers[k] = old else @headers[k] = {old, v} diff --git a/lapis/request.lua b/lapis/request.lua index 43e1d861..d4ad0da3 100644 --- a/lapis/request.lua +++ b/lapis/request.lua @@ -104,6 +104,11 @@ do self.buffer = { } self.params = { } self.options = { } + self.add_headers = function(self, headers) + for k, v in pairs(headers) do + self.res:add_header(k, v) + end + end self.__class.support.load_cookies(self) return self.__class.support.load_session(self) end, diff --git a/lapis/request.moon b/lapis/request.moon index a0114218..79dae0a6 100644 --- a/lapis/request.moon +++ b/lapis/request.moon @@ -155,6 +155,9 @@ class Request @buffer = {} -- output buffer @params = {} @options = {} + @add_headers = (headers) => + for k,v in pairs headers + @res\add_header k,v @@support.load_cookies @ @@support.load_session @