2016-03-07 2 views
-2

res.sendFile - рекомендуемый способ отправки статического файла с помощью . Однако из того, что я могу сказать, res.sendFile читает файл с диска по каждому запросу, например.Как обслуживать статический файл, не вызывая чтение диска?

router.get('/', (req, res) => { 
    res.sendFile('./guest.js'); 
}); 

Доступ / сделает диск для чтения на каждом запросе.

ответ

1

Предполагая, что действительно прочитать на каждом запросе (это трудно подтвердить, поскольку она может использовать умный кэш, который использует fs.watch или fs.stat осел ли, чтобы читать новый файл), то простое решение, чтобы получить содержимое файла в переменную и обслуживать его, используя res.rend, например

const guestScript = fs.readFileSync('./guest.js', 'utf-8'); 

router.get('/', (req, res) => { 
    res 
     .set('Content-Type', 'application/javascript') 
     .send(guestScript); 
}); 
+0

'res.sendFile' [это прочитать] (https://github.com/expressjs/express/blob/f3d99a4fdbe1531ea609e92c4d4ae6c269d78c7a/lib/response.js#L385-L420) файл на каждом вызове. – Gajus

Смежные вопросы