Я создаю суперпростой сервер в node и в моем onRequest-слушателе я пытаюсь определить, должен ли я обслуживать статический файл (с диска) или какой-то json (возможно, вытащенный из mongo) на основе путь в request.url
.
В настоящее время я пытаюсь сначала скопировать файл (потому что я использую mtime в другом месте), и если это не сработает, я прочитаю содержимое с диска. Что-то вроде этого:
fs.stat(request.url.pathname, function(err, stat) {
if (!err) {
fs.readFile(request.url.pathname, function( err, contents) {
//serve file
});
}else {
//either pull data from mongo or serve 404 error
}
});
Помимо кэширования результата fs.stat
для request.url.pathname
, есть ли что-то, что могло бы ускорить эту проверку? Например, было бы так же быстро, если бы были ошибки fs.readFile
вместо stat
? Или используя fs.createReadStream
вместо fs.readFile
? Или я могу проверить файл, используя что-то в child_process.spawn
? В основном я просто хочу убедиться, что я не трачу лишнее время на вождение w/fileio, когда запрос должен быть отправлен в mongo для данных...
Спасибо!