Include ETag in HEAD requests

fixes #2083
This commit is contained in:
Tiago Relvao 2014-04-28 10:54:51 +01:00 committed by Douglas Christopher Wilson
parent 61f2929a35
commit 3c7310ebcb
2 changed files with 24 additions and 1 deletions

View File

@ -130,7 +130,7 @@ res.send = function(body){
// ETag support
// TODO: W/ support
if (app.settings.etag && len && 'GET' == req.method) {
if (app.settings.etag && len && ('GET' == req.method || 'HEAD' == req.method)) {
if (!this.get('ETag')) {
this.set('ETag', etag(body));
}

View File

@ -16,6 +16,29 @@ describe('HEAD', function(){
.head('/tobi')
.expect(200, done);
})
it('should output the same headers as GET requests', function(done){
var app = express();
app.get('/tobi', function(req, res){
// send() detects HEAD
res.send('tobi');
});
request(app)
.get('/tobi')
.expect(200, function(err, res){
if (err) return done(err);
var headers = res.headers;
request(app)
.get('/tobi')
.expect(200, function(err, res){
if (err) return done(err);
assert.deepEqual(res.headers, headers);
done();
});
});
})
})
describe('app.head()', function(){