2014-02-19 3 views
0

я в настоящее время, используя очень простой кусок кода, чтобы вернуть запросы для статического контента в node.js:Использование ETags для статического контента в узле

function staticRequest(req, res) { 

    var toRetr = STATIC_DIR + req.params[0]; 

    if (fs.existsSync(toRetr)) { 
     res.sendfile(toRetr); 
    } else { 
     res.status(404).send('Not found: ' + req.params[0]); 
    } 

}; 

Я хотел бы использовать ETags, чтобы минимизировать избыточную трафик между клиентом и сервером ,

  1. Как это можно реализовать или включить?
  2. Должен ли я использовать кеш в памяти на стороне сервера?

ответ

0

я предлагаю что-то вроде этого:

var _myEtags = {}; 

function staticRequest(req, res) { 
    var toRetr = STATIC_DIR + req.params[0]; 
    if (_myEtags[req.get('ETag')]) { 
    res.sendfile(toRetr); 
    } else { 
    if (fs.existsSync(toRetr)) { 
     _myEtags[req.get('ETag')] = true; 
     res.sendfile(toRetr); 
    } else { 
     res.status(404).send('Not found: ' + req.params[0]); 
    } 
    } 
}; 
Смежные вопросы