簡體   English   中英

在Windows托管站點上運行基本node.js

[英]Running basic node.js on windows hosted site

我需要一些建議來獲得一個基本的快速應用程序在我的網站上工作。 該網站托管在Arvixe.com上。 我可以在我的localhost上運行代碼並且它可以工作,但是一旦我將它移動到Arvixe站點,它就會給我一個404錯誤 - 找不到文件或目錄。

在我的網站的根目錄中,我有一個名為node_modules的文件夾,其中包含express。 我還有一個app.js文件和一個web.config文件。

這是web.config文件:

<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>

這是app.js文件:

var express = require('express');
var app = express();

app.get('/', function(request, response) {
    response.send("This would be some HTML");
});

app.get('/api', function(request, response) {
    response.send({name:"Raymond",age:40});
});
app.listen(process.env.PORT);

localhost版本與此版本之間的唯一區別是有一個web.config文件,在app.js中我更改了app.listen以使用PORT而不是本地端口號。 我正在訪問的唯一文件應該是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需要重寫網址而不是使用默認文檔標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM