Вопросы о Node.js и скачивании с npm - PullRequest
0 голосов
/ 19 октября 2018

У меня возникли проблемы с поиском этой конкретной информации о NodeJS, я погуглил, но не могу найти ответы на нее.Надеюсь, вы сможете решить некоторые из моих проблем.

Итак, я установил NodeJS, следуя этому руководству в Ubuntu.Затем я использовал npm для установки Sass, следуя этому руководству .Я смог заставить sass работать очень хорошо.

Но вот тут и начинается путаница.Я не совсем уверен, как на самом деле использовать Node.Должен ли я всегда запускать сервер, используя это?

node myjsfile.js

Если я этого не делаю, и в своем HTML-файле я добавляю тег сценария, например

<script src="js/myjsfile.js"></script>

Затемкогда я загружаю страницу, консоль выдаст ошибку, такую ​​как

Uncaught ReferenceError: require is not defined

Но, если я выполню

node myjsfile.js

после настройки моих файлов, следуя этому руководству , тогда никакие изменения, которые я делаю в JS или HTML, на самом деле не появляются на моей странице, что означает, что мне приходится постоянно перезапускать команду node, чтобы увидеть любые обновления.

Я уверен, что ячто-то здесь не хватает, но я не могу понять, что.Буду очень признателен за помощь.

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

Узел для серверного кода (создайте http-сервер, выполните несколько сценариев, создайте RestAPI).

Допустим, вы создали mynodejsfile.js.Когда вы хотите установить пакет узла, который будет использоваться в этом файле.Вы попадаете в папку mynodejsfile.js и:

npm install mypackage

Это установит зависимость «mypackage» в папке node_modules рядом с «mynodejsfile.js».

Тогда вы сможете

require('mypackage')

в 'mynodejsfile.js'.

Если вы хотите создать HTML-контент, вы будете использовать узел, используя файл вашего узланепосредственно в браузере файл узла должен использоваться с интерпретатором nodejs.

Когда вы используете HTML-файл со скриптом, вы используете код на стороне клиента, который не будет понят вашим браузером.При написании кода клиента (для браузера) вы будете использовать код браузера ECMA 5/6, а не код nodejs.

Вы можете перенести файл вашего узла, чтобы сделать его пригодным для использования в браузере, но это расширенное / ограниченное использование, и вы должны понимать разницу между клиент-серверным кодом, прежде чем идти по этому пути.

0 голосов
/ 19 октября 2018

По моему мнению, вы путаете поведение функций JavaScript на стороне клиента (например, включение файла сценария в веб-страницу) и создание сервера NodeJS.Как отметил Матти, Node может интерпретировать больше, чем браузер.

Что касается необходимости постоянно обновлять экземпляр вашего сервера, я вряд ли могу порекомендовать вам nodemon .По умолчанию nodemon перезапускает ваш сервер после каждого изменения кода, устраняя проблему ручного перезапуска сервера на этапе разработки.

0 голосов
/ 19 октября 2018

Require не является частью JavaScript. Что этот Javascript «требует»?

Вы должны перенести файл с помощью таких инструментов, как grunt, webpack и т. Д.

Узел может интерпретировать больше, чем браузер.Вот почему узел не выдает ошибку.Также используется на стороне сервера.Если вы хотите выполнить свой скрипт в браузере, вам не нужен узел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...