Для чего нужен nodejs?

Добрый день! Попробую пояснить свой вопрос

Часто в интернете можно прочитать фразу, - развернуть сервер на node/express. Читая различные статьи, даётся общая характеристика того, что он делает, к примеру -

" Платформу используют для создания веб-серверов, API... ", "это среда выполнения кода JavaScript вне браузера, которая позволяет писать серверный код для веб-страниц и веб-приложений", "Серверный JavaScript использует API, обеспечивающие доступ к файловой системе приложений, HTTP-запросам, потокам."

Всё это слишком абстрактно, сложно материализующее в голове понятия... Скажем, есть к примеру хост-провайдер, предоставляющие место для сайта. Он же использует тот же http запрос для отдачи нам нужных файлов? Или взять к примеру php... Про него не говорят, что с его помощью нужно создать веб-сервер? Он предоставляет все необходимые инструменты, чтобы обрабатывать SQL-запросы.

Что же такое nodejs? Возможно, мой вопрос сводиться к тому, что такое веб сервер?
  • Вопрос задан
  • 835 просмотров
Пригласить эксперта
Ответы на вопрос 5
@Alex_At_Net
Обращайтесь, помогу - https://t.me/codecraft_phd
самое простое объяснение: 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, () => { });
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
для начала нужно понять что делает nodejs, а еще точнее где можно выполнить код на javascript.

раньше - его можно было выполнить только в браузере.
но огромное количество программистов, которые изучили javascript были бы не против писать код, который можно выполнить не только в браузере.

И nodejs - это собственно решение, которое превратило десятки тысяч фронтендеров в full-stack разработчиков.
Ответ написан
Комментировать
@holllop
Попробую ответить по порядку.
Node.js является средой выполнения JavaScript, которая работает за пределами браузера, на сервере. Он позволяет разрабатывать серверный код для веб-страниц и веб-приложений. В контексте веб-сервера, Node.js предоставляет возможность создания и запуска сервера, который будет обрабатывать HTTP-запросы и отвечать на них.
Всё это слишком абстрактно, сложно материализующее в голове понятия... Скажем, есть к примеру хост-провайдер, предоставляющие место для сайта. Он же использует тот же http запрос для отдачи нам нужных файлов? Или взять к примеру php... Про него не говорят, что с его помощью нужно создать веб-сервер?

Хост-провайдер или хостинг-провайдер - это компания, которая предоставляет услуги хостинга, т.е. предоставляет место на своих серверах для размещения сайтов. Когда вы загружаете веб-страницы на хостинг-провайдер, он использует веб-серверное ПО (например, Node.js, Apache, Nginx) для обработки входящих запросов от клиентов и отдачи файлов, которые запрошены браузерами пользователей.
что такое веб сервер?

веб-сервер (например, на базе Node.js или PHP) - это программное обеспечение, которое обрабатывает HTTP-запросы, предоставляет веб-содержимое и выполняет необходимые операции для функционирования веб-приложений. Node.js предлагает возможности для разработки серверного кода на JavaScript, в то время как PHP является отдельным языком программирования со своими инструментами и функциональностью.
Ответ написан
Комментировать
@tyxeo
дальний знакомый Мурыча
nodejs это среда исполнения js-приложений
такая же среда есть в браузере - но в браузере еще есть графический интерфейс программируемый на языках html css

nodejs может заменить php-сервер
php-сервер это среда исполнения php-приложений

клиентским веб приложениям на js нужен сервер для сохранения и чтения файлов
потому что браузер не позволяет обращаться к файловой системе

nodejs можно объединить с браузером - тогда приложение на js будет иметь доступ к файловой системе
для этого есть такие фреймворки как electron

- то есть nodejs нужен для создания серверов и десктопных приложений
Ответ написан
Griboks
@Griboks
Всё это слишком абстрактно, сложно материализующее в голове понятия...

Всё это максимально понятно для программистов. Получается, вам nodejs не нужен.

Скажем, есть к примеру хост-провайдер, предоставляющие место для сайта. Он же использует тот же http запрос для отдачи нам нужных файлов?

Нет, это не так работает. Видимо, вы недостаточно глубоко разбираетесь в "интернете", поэтому не понимаете, за что отвечают его различные компоненты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы