在共享主机上部署Node.js文件

时间:2019-02-19 06:07:45

标签: javascript node.js server shared-hosting

  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 /中。我在/ home /%username%文件夹中部署了nodejs文件,并访问了http://example.com/app.js。这次源代码不可见,并且路由器按预期抛出404错误页面。 (在/ home /%username%中进行部署之前,已删除public_html中的文件)

  4. 索引页路由器未按预期工作。路由器收到了索引页面(http://example.com/)的'/index.html.var'而不是'/'或'/ index'。

请指导我如何在共享主机上安全地部署nodejs应用。

1 个答案:

答案 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中存储静态文件的示例

  • 将您的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'))

参考:http://expressjs.com/en/starter/static-files.html