2016-07-17 3 views
-2

Если файлы JavaScript загружаются и выполняются в браузере, как сервер знает, когда файл является файлом узла js, поэтому для выполнения на сервере?новичок: JavaScript VS Node JS

ответ

2

Оба веб-браузера и nodejs запускают сценарии javascript. Основное различие заключается в том, что NodeJS является структурой на стороне сервера и выполняет javascript-код на сервере, а не в среде веб-браузера (на стороне клиента).

Нет такой концепции, как nodejs-файл. Есть только скрипты javascriprt, которые можно запускать на клиенте (с помощью механизма JavaScript, который встроен в веб-браузер, например V8 для хрома) или на сервере (с помощью в этом случае NodeJS). Кстати, если я не ошибаюсь, то движок JavaScript, который использует NodeJS, - это движок JavaScript в JavaScript V8.)

+0

@Max Добро пожаловать! Я рад, что помог. – Christos

3

Я хочу добавить несколько вещей к Кристосу.

JavaScript - это язык. node.js - это не язык, а «environement/set of software», который работает с обычным JavaScript.

У всех браузеров есть механизмы JavaScript, которые запускают JavaScript веб-страниц (Spidermonkey для Firefox, V8 для Chrome).

Node.js - это просто движок V8 с некоторыми библиотеками для ввода-вывода и создания сетей, поэтому вы можете использовать JavaScript за пределами браузера для создания бэкэнд-услуг.

+1

спасибо, имеет смысл – Max

3

Я думаю, что конкретные примеры работают лучше концептуальных объяснений, когда в воздухе возникает путаница. Итак, возьмите этот пример:

У вас есть сценарий Node.js под названием «hello.js» (в JavaScript, конечно), который просто печатает «Hello World!». в консоли и выходы. Вы можете запустить этот скрипт, набрав node hello.js. Он просто распечатает сообщение и выйдет.

У вас есть еще один скрипт Node.js под названием «server.js», который реализует HTTP-сервер (aka web server), который прослушивает порт 3000. Этот сервер обслуживает статические файлы из каталога, называемого «static». В этой папке есть два файла: «index.html» и «app.js». Это файлы для веб-сайта (а app.js - в JavaScript, конечно). Вы запустите этот скрипт, набрав node server.js. Он запустит HTTP-сервер и начнет ждать клиентских запросов.

Пока выполняется сценарий HTTP-сервера, вы заходите на сайт «http://localhost:3000», чтобы попасть на тот веб-сервер, который вы начали выше. Сервер знает, как обслуживать статические файлы, и знает, что он должен по умолчанию использовать index.html. Ваш браузер загружает index.html, обрабатывает его и понимает, что он также должен вернуться и запросить файл app.js (из-за тега <script> в index.html). Когда приложение app.js загружается браузером, браузер запускает его. Сервер Node.js не заботится ни о чем, кроме как обслуживать его как еще один статический файл.

+0

отличный пример спасибо – Max

+0

Хорошее объяснение –