Я могу объяснить стороны node.js, и, надеюсь, кто-то другой может прийти и объяснить стороны IIS / ASP.net.
Node.js - это общая среда выполнения Javascript. В него можно создавать всевозможные приложения, даже приложения, которые не имеют никакого отношения к веб-серверу.
Так получилось, что одна из встроенных библиотек в node.js - это сервер http / https. Поэтому, если вы хотите создать веб-сервер, управляемый node.js, вы просто берете объект http-сервера, создаете сервер, запускаете его и программируете при обработке запроса.
Express - это веб-фреймворк, который построен поверх объектов сервера node.js http / https. Он использует встроенный сервер и предоставляет платформу для определения обработчиков запросов, настройки маршрутизации и промежуточного программного обеспечения, а также API-интерфейса промежуточного программного обеспечения, позволяющего использовать всевозможные сторонние библиотеки для выполнения самых разнообразных задач типа веб-сервера, таких как аутентификация. , шифрование, сжатие, загрузка, загрузка, обработка изображений, обработка аудио, обработка видео и т. д. *
Что отличает node.js от ряда других инфраструктур веб-серверов, так это то, что node.js изначально не говорил, что я всего лишь инструмент для работы с веб-сервером. Он начинался как универсальная среда программирования, в которой был довольно хороший встроенный веб-сервер в качестве одного из инструментов, которые можно было использовать. И для создания и запуска собственного веб-сервера с помощью встроенной поддержки требуется всего несколько строк кода. Я бы рискнул предположить, что создание приложений веб-сервера, пожалуй, самая популярная вещь, связанная с node.js, но, конечно, не единственная вещь.
Например, у меня есть сценарий node.js, который я написал, который выполняет ночную уборку на моем диске. Он удаляет определенные типы файлов из моего временного каталога. Это помогает управлять файлами резервных копий (сохраняя только последние 10 резервных копий моего каталога Adobe Lightroom). Такое использование node.js не имеет абсолютно никакого отношения к веб-серверу. Это всего лишь среда выполнения Javascript, в которой я использую библиотеки доступа к файловой системе, чтобы выполнять кучу управления файлами.
Например, вот код для запуска базового веб-сервера в обычном node.js:
const http = require('http');
const server = http.createServer(function(req, res) {
console.log("got a request from", req.url);
res.end("Hi");
});
// start web server on port 3000
server.listen(3000);