Различия между Node.js и браузером
И браузер, и Node.js используют JavaScript в качестве языка программирования. Создание приложений, работающих в браузере, полностью отличается от создания приложения Node.js. Несмотря на то, что это всегда JavaScript, существуют ключевые различия, которые кардинально меняют опыт.
С точки зрения frontend-разработчика, активно использующего JavaScript, приложения Node.js приносят огромное преимущество: комфорт программирования всего - и frontend, и backend - на одном языке.
У вас есть огромная возможность, потому что мы знаем, как трудно полностью и глубоко изучить язык программирования, и, используя один и тот же язык для выполнения всей вашей работы в сети - как на клиенте, так и на сервере, вы находитесь в уникально выгодном положении.
TIP
Что меняется, так это экосистема.
В браузере большую часть времени вы взаимодействуете с DOM или другими API веб-платформы, такими как Cookies. Их, конечно, не существует в Node.js. У вас нет document
, window
и всех других объектов, предоставляемых браузером.
А в браузере у нас нет всех тех приятных API, которые Node.js предоставляет через свои модули, таких как функциональность доступа к файловой системе.
Другое большое различие заключается в том, что в Node.js вы контролируете среду. Если вы не создаете приложение с открытым исходным кодом, которое любой может развернуть где угодно, вы знаете, какую версию Node.js вы будете использовать для запуска приложения. По сравнению с браузерной средой, где у вас нет возможности выбирать, какой браузер будут использовать ваши посетители, это очень удобно.
Это означает, что вы можете писать весь современный ES2015+ JavaScript, который поддерживает ваша версия Node.js. Поскольку JavaScript развивается так быстро, а браузеры могут немного медленно обновляться, иногда в сети вы застреваете с использованием более старых версий JavaScript / ECMAScript. Вы можете использовать Babel, чтобы преобразовать свой код в ES5-совместимый, прежде чем отправлять его в браузер, но в Node.js вам это не понадобится.
Еще одно отличие заключается в том, что Node.js поддерживает как CommonJS, так и ES module systems (с Node.js v12), в то время как в браузере мы начинаем видеть реализацию стандарта ES Modules.
На практике это означает, что вы можете использовать как require()
, так и import
в Node.js, в то время как в браузере вы ограничены import
.