Данный "учебный пример" (для понимания некоторых общих принципов взаимодействия браузеров с серверами) примерно так:
var http = require('http');
var fs = require('fs');
var url = require('url');
http.createServer(function(req, res) {
var urlParse = url.parse(req.url, true);
if(urlParse.pathname == '/index.html' && checkAccess(req)) {
console.log(req.url);
fs.readFile(__dirname + '/index.html', function(err, content) {
if(err) console.log(err);
res.end(content);
});
}else if(req.url == '/ball.png') {
console.log(req.url);
fs.readFile(__dirname + req.url, function(err, file) {
if(err) console.log(err);
res.setHeader('Content-Type', 'image/png');
res.end(file);
});
}else{
res.statusCode = 403;
res.end("Tell me the secret to access!");
}
}).listen(3000, () => console.log('On PORT 3000'));
function checkAccess(req) {
return url.parse(req.url, true).query.secret == 'o_O';
}
А вообще, см. камент выше - так статику, конечно, не выдают (хоть одна картинко, хоть 100).
Ну и в целом, pathname в Node.js (и не только в Node.js, ну да ладно) - это просто строка, произвольный набор символов (нопремер, набор символов "/index.html", который можно заменить на набор "/asadsfghjk" - и всё будет работать так же), никакого указания на пути или файлы она в себе не несёт.