在 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/中。我在/home/%username% 文件夹中部署了 nodejs 文件并访问了 http://example.com/app.js .这次源代码不可见,路由器按预期抛出 404 错误页面。 (在/home/%username 中部署之前删除了 public_html 中的文件)
索引页面路由器未按预期工作。路由器接收到索引页 (http://example.com/) 的“/index.html.var”,而不是“/”或“/index”。
请指导我在共享主机上安全地部署 nodejs 应用程序。
最佳答案
呃,不,Node.js 不同,它不是 PHP。 Node.js 中的程序就像 C/C++、Python 或任何其他通用编程语言一样,它可以控制(可能)整个服务器,因此不能部署到共享主机上。
你至少需要一个便宜的 VPS(虚拟专用服务器,云服务器),现在非常便宜,与共享主机相当。
首先,我建议使用 Heroku,免费服务器:https://www.heroku.com
编程注意事项: Node.js 是服务器端语言,它不像传统的 JS 那样在浏览器中运行,你不会通过 URL 访问它,除非你使用 Express.js 或那种库创建一个网络服务器。
在 public_html 中使用 Express.js 服务器静态文件的示例:
- 将您的 server.js(或 app.js,或任何您放置的内容)放在 public_html 之外,不要将您的 Node.js 代码放在那里。
例如,当您将
app.js
放在public_html
之外时,以这种方式提供静态文件:app.use('/static', express.static('public_html'))
访问以
/static
开头的 URL 路径中的文件,或使用以下中间件用于在根 URL 路径中服务器静态文件。:app.use('/', express.static('public_html'))
关于javascript - 在共享主机上部署 nodejs 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54759804/