В случае моей домашней работы мне нужно проверить, существует ли файл в определенном каталоге «public», а затем, если он есть, открыть его через localhost в браузере.Я хотел использовать функцию, чтобы проверить, существует ли файл в каталоге, а затем, если true, отправить путь к файлу другой функции, которая откроет файл.Это все в моем файле server.js, и файл HTML, который я хочу открыть вместе с CSS и JS для файла HTML, находится в моем общедоступном каталоге.
Это использует node.js.Мне нужно запустить узел server.js в консоли, а затем зайти на мой локальный хост в браузере и увидеть отображаемую веб-страницу со стилем и функциональностью.Я пытался использовать fs.access и fs.existsSync.Нам не разрешено использовать экспресс в этом назначении.
var http = require('http');
var fs = require('fs');
http.createServer(function(req, res) {
var filepath = 'public' + req.url;
if (req.url == '/index.html' || req.url == '/') {
fs.access(filepath);
}
}).listen(3000);
console.log("Server running on Port 3000...");
fs.access(filepath, (access) =>{
if (access) {
res.statusCode = 200;
sendFile(filepath, res);
}
else {
res.statusCode = 404;
sendFile('public/404.html', res);
}
});
function sendFile(path, res) {
fs.readFile(path, "utf8", function(data){
res.end(data);
});
}
Я получаю сообщение об ошибке, указывающее, что filepath не определен (когда я использую его в параметрах при вызовеfs.access.