Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在共享主机上部署nodejs文件_Javascript_Node.js_Server_Shared Hosting - Fatal编程技术网

Javascript 在共享主机上部署nodejs文件

Javascript 在共享主机上部署nodejs文件,javascript,node.js,server,shared-hosting,Javascript,Node.js,Server,Shared Hosting,在PHP中,我经常将文件放在public_html文件夹中。我对nodejs也做了同样的操作,并使用“永远开始app.js”启动了我的应用程序。路由器按预期工作,但我可以在浏览器中看到我的nodejs源代码,例如显示app.js的源代码 在一些教程中,他们将文件放在/var/www/html/中并启动应用程序。public_html和/var/www/html之间有什么区别 我正在使用共享主机,因此我没有权限将文件放在/var/www/html/中。我在/home/%username%文件夹中部

在PHP中,我经常将文件放在public_html文件夹中。我对nodejs也做了同样的操作,并使用“永远开始app.js”启动了我的应用程序。路由器按预期工作,但我可以在浏览器中看到我的nodejs源代码,例如显示app.js的源代码

  • 在一些教程中,他们将文件放在/var/www/html/中并启动应用程序。public_html和/var/www/html之间有什么区别

  • 我正在使用共享主机,因此我没有权限将文件放在/var/www/html/中。我在/home/%username%文件夹中部署了nodejs文件并访问了它。这一次源代码不可见,路由器按预期抛出404错误页。(在/home/%username%中部署之前已删除public_html中的文件)

  • 索引页路由器未按预期工作。路由器收到的不是“/”或“/index”,而是索引页()的“/index.html.var”


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

    呃,不,Node.js不同,它不是PHP。js中的程序就像C/C++、Python或任何其他通用编程语言一样,它可以控制(很可能)整个服务器,因此不会部署到共享主机上

    <>你需要一个便宜的VPS(虚拟专用服务器,云服务器),至少现在非常便宜,与共享主机相当。

    对于开始,我建议Heroku,免费服务器:

    编程说明: Node.js是服务器端语言,它不像传统的js那样在浏览器中运行,您不会通过URL访问它,除非您使用Express.js或类似的库创建Web服务器

    使用Express.js在公共html中服务器静态文件的示例

    • 将您的server.js(或app.js,或任何您放置的内容)放在public_html之外,不要将您的Node.js代码放在那里
    • 例如,当您将
      app.js
      放在
      public\u html
      的正外部时,可以通过以下方式提供静态文件:

      app.use('/static',express.static('public_html'))

    • 在以
      /static
      开头的URL路径上访问文件,或使用以下中间件在根URL路径上服务器静态文件:

      app.use('/',express.static('public_html'))


    参考资料:

    你明白了。我认为在public_html上部署nodejs时,express路由器将负责隐藏我的源代码并只提供静态文件,但事实并非如此,它提供public_html中的所有文件。在VPS中,我应该在哪里部署NodeJ?(哪个目录?)为什么在express router中以“/index.html.var”的形式接收“/”或“/index”页面?app.use('/',index)//没有工作app.use('/index.html.var',index)//这个服务的索引页,例如()得到了它。对于索引页,express router获得的是“GET/Index.html.var”,而不是“/”或“/Index”。我使用morgan模块登录,当我导航到主页时,得到了“GET/index.html.var”。有人能帮我修一下吗?