Check headers is sent before set header

This commit is contained in:
welefen 2017-05-19 20:37:06 +08:00
parent 051ab23668
commit 2edcf33ca3

View File

@ -1,5 +1,5 @@
const helper = require('think-helper');
const debug = require('debug')('thinkjs');
const deprecate = require('depd')('thinkjs');
/**
@ -145,13 +145,19 @@ module.exports = {
* @param {Mixed} value
*/
header(name, value){
if(value === undefined && helper.isString(name)){
return this.ctx.header[name];
}
if(this.ctx.res.headersSent){
debug(`headers has already sent, url: ${this.ctx.url}`);
return;
}
if(value !== undefined){
return this.ctx.set(name, value);
}
if(helper.isObject(name)){
return this.ctx.set(name);
}
return this.ctx.header[name];
},
/**
* get userAgent header