Добрый вечер.
Начал читать книгу Node.js в действии.
Дело вот в чём:
есть некий код(для полного понимания ниже весь код):
var http = require('http'),
fs = require('fs'),
path = require('path'),
mime = require('mime');
var cache = {};
function send404(res) {
res.writeHead(404,{'Content-Type':'text/plain'});
res.write('Error 404: resourse not found');
res.end();
}
function sendFile(res, filePath, fileContents) {
res.writeHead(
200,
{'content-type':mime.lookup(path.basename(filePath))}
);
res.end(fileContents);
}
function serveStatic(res, cache, absPath) {
if(cache[absPath]) {
sendFile(res, absPath, cache[absPath]);
} else {
fs.exists(absPath, function(exists) {
if(exists) {
fs.readFile(absPath, function(err, data) {
if(err) {
send404(res);
} else {
cache[absPath] = data;
sendFile(res, absPath, data);
}
});
} else {
send404(res);
}
});
}
}
var server = http.createServer(function(req, res) {
var filePath = false;
if(req.url == '/') {
filePath = 'public/index.html';
} else {
filePath = 'public' + req.url;
}
var absPath = './' + filePath;
server.Static(res, cache, absPath);
});
server.listen(3000, function() {
console.log("Server listening on port 3000");
});
Меня же интересует 1 момент - функция serveStatic.
На офф. сайте пишет что у метода fs.exists stability-0. И не рекомендует его использовать.
В книге написан код именно таким образом.
Что хочу узнать:
-Для чего нужен метод fs.exists и что передаётся в качестве аргумента exists здесь :
fs.exists(absPath, function(exists) {
-Более стабильные альтернативы.
-И стоит ли его использовать вообще?