Что касается обращения к
`publichtml/main`
то это не сработает поскольку вы не отслеживаете этот путь. Но если так надо, то просто сделайте так
let pathname = path.join(__dirname + req.url)
т.е. без вашего base
const http = require('http');
const path = require('path');
const fs = require('fs');
var base = '/publicHtml';
http.createServer(function (req, res) {
// let pathname = base + req.url + '.html';
let pathname = path.join(__dirname + base + req.url); // используйте path.join()
let fileExt = path.extname(pathname); // получаю тип файла из строки в pathname
if (!fileExt) // если тип файла не обнаружен
pathname += '.html'; // добавить его в конце строки (соответсвенно к файлу)
// все что ниже не изменяется
if (path.basename(pathname) == null) {
res.writeHead(404);
res.write('Страница не найдена 404\n');
res.end();
}
else{
let file = fs.createReadStream(pathname);
res.setHeader('Content-type', 'text/html');
res.statusCode = 200;
file.on('open',function () {
file.pipe(res);
});
file.on('error', function (err) {
console.log(err);
});
}
// body...
}).listen(3000);
console.log('Server run on port 3000');