javascript - 在共享主机上部署 nodejs 文件

标签 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 应用程序。

最佳答案

呃,不,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'))

引用:http://expressjs.com/en/starter/static-files.html

关于javascript - 在共享主机上部署 nodejs 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54759804/

相关文章:

javascript - 在函数的函数中返回值

node.js - 为什么推荐 node.js v4.4.5 而不是 v6.2.0 "for most users"?

ubuntu - 在crontab中执行php

javascript - 如何通过 gulp-if 和懒惰管道使用多个管道?

javascript - 如何按顺序执行 jQuery AJAX 调用?

javascript - 如何使用 Firebase Cloud Functions Storage 创建文件夹

java - Java Inputstream,NoFly服务器

c - C 中的套接字连接错误

javascript - Jquery tablesorter 通过两个字段进行排序

javascript - 用于动态着色路径的 SVG 系统 (Cordova)