在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应用。
答案 0 :(得分:1)
嗯,不,Node.js不同,它不是PHP。 Node.js中的程序就像C / C ++,Python或任何其他通用编程语言一样,可以控制(可能)控制整个服务器,因此不要将其部署到共享主机上。
您现在至少需要一个非常便宜的VPS(虚拟专用服务器,云服务器),与共享主机相当。
首先,我建议使用Heroku免费服务器https://www.heroku.com
编程说明: Node.js是服务器端语言,它无法像传统JS那样在浏览器中运行,除非使用Express.js或此类库创建Web服务器,否则您不会通过URL访问它。
使用Express.js在public_html中存储静态文件的示例:
例如,当您将app.js
放在public_html
外面时,可以通过以下方式投放静态文件:
app.use('/static', express.static('public_html'))
访问以/static
开头的URL路径中的文件,或使用以下中间件来在根URL路径中存储静态文件。
app.use('/', express.static('public_html'))