самое простое объяснение: node.js - это exe-файл `node.exe`, который выполняет инструкции из .js файла. Запускать из коммандной строки:
node.exe server.js
Инструкцией в JS файле может быть: создать web-server, который на запрос /users возвращает HTML строку со списком пользователей.
server.js файл может быть таким:
require('http').createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Привет!');
}).listen(3000, () => { });
express - это набор функций (в примере выше require, createServer - вызовы функций), которые упрощают написание правил "запрос -> генерация ответа". Посмотрите на примеры:
https://expressjs.com/en/starter/hello-world.html
хост-провайдер, в данном случае, предоставляет машину, с windows или linux, на которой можно запустить node.exe с приведенным server.js. Хост провайдер, в отельной системе, настраивает так, что запросы www.mysite.com направляются на эту машину, на её 3000 порт.
php - это, в большинстве случаев, модуль Web-server-а. В терминах этого примера, php - это функция, которой передается php файл, а на выходе - строка результата. Например:
require('http').createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(php('c:\\projects\\app\\main.php')); // вызов PHP
}).listen(3000, () => { });