Развертывание файлов nodejs на виртуальном хостинге - PullRequest
0 голосов
/ 19 февраля 2019
  1. В PHP я использовал для размещения файлов в папке public_html.Я сделал то же самое для nodejs и запустил свое приложение, используя «навсегда запустить app.js».Маршрутизаторы работали, как и ожидалось, но я могу видеть исходные коды моих nodejs в браузере, например, http://example.com/app.js показывает исходный код app.js.

  2. В некоторых руководствахОни поместили файлы в / var / www / html / и запустили приложение.В чем разница между public_html и / var / www / html?

  3. Я использую виртуальный хостинг, поэтому у меня нет прав для размещения файлов в / var / www / html/.Я развернул файлы nodejs в папке / home /% username% и посетил http://example.com/app.js. На этот раз исходные коды не видны, и маршрутизатор выдал страницу с ошибкой 404, как и ожидалось.(Удаленные файлы в public_html перед развертыванием в / home /% username%)

  4. Маршрутизатор страницы индекса не работал должным образом.Вместо «/» или «/ index» маршрутизатор получил «/index.html.var» для страницы индекса (http://example.com/).

Пожалуйста, ознакомьте меня с безопасным развертыванием приложения nodejs на виртуальном хостинге.

1 Ответ

0 голосов
/ 19 февраля 2019

Э-э, нет, Node.js отличается, это не PHP.Программа в Node.js похожа на C / C ++, Python или любой другой язык программирования общего назначения, она может контролировать (скорее всего) весь сервер, поэтому ее нельзя развертывать на виртуальном хостинге.

Выпотребуется хотя бы дешевый VPS (виртуальный частный сервер, облачный сервер), очень дешевый в настоящее время, наравне с общим хостингом.

Для начала я предлагаю Heroku, бесплатный сервер: https://www.heroku.com

Замечания по программированию: Node.js - это серверный язык, он не запускается в браузере, как традиционный JS, вы не будете посещать его по URL, если не создадите веб-сервер с использованием Express.js или подобной библиотеки.

Пример использования Express.js для сервера статических файлов в public_html :

  • Поместите ваш server.js (или app.js, или что-то еще) вне public_html, не помещайте туда свой код Node.js.
  • Например, когда вы помещаете app.js прямо за public_html, обслуживайте статические файлы следующим образом:

    app.use('/static', express.static('public_html'))

  • Доступ к файлам по URL-адресам sиспользуйте /static или используйте следующее промежуточное программное обеспечение для статических файлов сервера по корневому URL-адресу:

    app.use('/', express.static('public_html'))

Ссылка: http://expressjs.com/en/starter/static-files.html

...