Javascript 在windows托管站点上运行basic node.js
我需要一些建议,让一个基本的express应用程序在我的网站上工作。该网站位于Arvixe.com windows hosting上。我可以在我的本地主机上运行代码,它可以工作,但一旦我将其移动到Arvixe站点,它就会给我一个404错误-找不到文件或目录 在我的站点的根目录中有一个名为node_modules的文件夹,其中包含express。我还有一个app.js文件和一个web.config文件 这是web.config文件:Javascript 在windows托管站点上运行basic node.js,javascript,windows,node.js,express,hosting,Javascript,Windows,Node.js,Express,Hosting,我需要一些建议,让一个基本的express应用程序在我的网站上工作。该网站位于Arvixe.com windows hosting上。我可以在我的本地主机上运行代码,它可以工作,但一旦我将其移动到Arvixe站点,它就会给我一个404错误-找不到文件或目录 在我的站点的根目录中有一个名为node_modules的文件夹,其中包含express。我还有一个app.js文件和一个web.config文件 这是web.config文件: <configuration> <syst
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="app.js" verb="*" modules="iisnode" />
</handlers>
<defaultDocument enabled="true">
<files>
<add value="app.js" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
localhost版本和此版本之间的唯一区别是有一个web.config文件,并且在app.js中我更改了app.listen以使用端口,而不是本地端口号。我访问的唯一文件应该是app.js和express,它们都在那里
我对node.js和express非常陌生。我是否遗漏了一些关于这些文件之间如何通信的信息,或者是发生了什么事情阻止了我的站点运行?有没有一种简单的方法可以在将来调试类似的东西 我找到了一个办法让它发挥作用。我已将此代码添加到我的web.config:
<rewrite>
<rules>
<rule name="/">
<match url="/*" />
<action type="Rewrite" url="app.js" />
</rule>
</rules>
</rewrite>
我很惊讶这是必要的,因为app.js被设置为默认文档。显然,Express需要重写URL,而不是使用默认的文档标记 这是在他们的共享主机上还是你有VPS?如果是共享的,您是否必须要求他们安装它或它已经存在?节点站点位于他们共享的windows主机上。我不得不要求他们安装node。我还有一个Linux共享主机,必须自己安装。Linux版本对我来说是一个更难处理的过程,但我是一个windows用户,所以我想这是意料之中的。最后我把我的网站都换成了windows,从那以后这一直是一次很好的体验。
<rewrite>
<rules>
<rule name="/">
<match url="/*" />
<action type="Rewrite" url="app.js" />
</rule>
</rules>
</rewrite>