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



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Э, нет, Node.js отличается, это не PHP. Программа в Node.js такая же, как C/C++, Python или любой другой язык программирования общего назначения, она может контролировать (вероятно) весь сервер, поэтому ее нельзя развертывать на виртуальном хостинге.
Вам понадобится дешевый VPS (виртуальный приватный сервер, облачный сервер) как минимум, очень дешевый в наше время, наравне с виртуальным хостингом.
Для начала предлагаю Heroku, бесплатный сервер: https://www.heroku.com
Примечания по программированию: Node.js — это серверный язык, он не запускается в браузере, как традиционный JS, вы не будете посещать его по URL-адресу, если только вы не создадите веб-сервер с помощью Express.js или подобной библиотеки.
Пример использования Express.js для сервера статических файлов в public_html:
Например, когда вы помещаете свой 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
понятно. Для страницы индекса экспресс-маршрутизатор получает «GET /index.html.var» вместо «/» или «/ index». Я вошел в систему с помощью модуля morgan и получил «GET /index.html.var», когда перехожу на домашнюю страницу. Может ли кто-нибудь помочь мне исправить это?
Я понял. Я думал, что развертывая nodejs на public_html, экспресс-маршрутизатор позаботится о том, чтобы скрыть мой исходный код и обслуживать только статические файлы, но это не так, он обслуживает все файлы в public_html. В VPS, где я должен развернуть nodejs? (Какой каталог?) Почему страница '/' или '/index' принимается как '/index.html.var' в экспресс-маршрутизаторе? app.use('/',index) // не работает app.use('/index.html.var',index) //эта обслуживаемая индексная страница, например. (пример.com)