Развертывание файлов nodejs на виртуальном хостинге

  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 на виртуальном хостинге.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
1 334
1

Ответы 1

Э, нет, 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-путям, начинающимся с /static, или используйте следующее промежуточное программное обеспечение для сервера статических файлов по корневому URL-адресу:

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

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

Я понял. Я думал, что развертывая nodejs на public_html, экспресс-маршрутизатор позаботится о том, чтобы скрыть мой исходный код и обслуживать только статические файлы, но это не так, он обслуживает все файлы в public_html. В VPS, где я должен развернуть nodejs? (Какой каталог?) Почему страница '/' или '/index' принимается как '/index.html.var' в экспресс-маршрутизаторе? app.use('/',index) // не работает app.use('/index.html.var',index) //эта обслуживаемая индексная страница, например. (пример.com)

Bharath Ram 19.02.2019 13:53

понятно. Для страницы индекса экспресс-маршрутизатор получает «GET /index.html.var» вместо «/» или «/ index». Я вошел в систему с помощью модуля morgan и получил «GET /index.html.var», когда перехожу на домашнюю страницу. Может ли кто-нибудь помочь мне исправить это?

Bharath Ram 22.02.2019 14:09

Другие вопросы по теме