@DarCKoder

Fs.exists в node.js?

Добрый вечер.
Начал читать книгу 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) {
-Более стабильные альтернативы.
-И стоит ли его использовать вообще?
  • Вопрос задан
  • 329 просмотров
Решения вопроса 1
abyrkov
@abyrkov
JavaScripter
На офф. сайте пишет что у метода fs.exists stability-0. И не рекомендует его использовать.
...и ответы, как не странно, на все ваши вопросы. Ну доку то читать, ну?

1. Он проверяет наличие файла. Функции передается аргумент типа boolean(true-false) который, как вы догадываетесь, означает, есть ли файл.
2. Дока гласит:
Use fs.stat() or fs.access() instead.
3. Зависит от версии node.js.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы