2013-10-04 2 views
4

내 사이트에서 작동하는 기본 특급 앱을 얻으려면 몇 가지 조언이 필요합니다. 이 사이트는 호스팅하는 Arvixe.com 창에서 호스팅됩니다. 내 localhost에서 코드를 실행할 수 있지만 작동하지만 Arvixe 사이트로 이동하면 404 오류가 발생합니다. 파일 또는 디렉토리를 찾을 수 없습니다.Windows에서 기본 node.js를 실행하면 호스트 된 사이트

내 사이트의 루트에 표현식이있는 node_modules라는 폴더가 있습니다. app.js 파일과 web.config 파일도 있습니다.

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

로컬 호스트 버전과이 버전의 유일한 차이는 웹이 있습니다 :

<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 파일은 다음과 같습니다

은 web.config 파일입니다. config 파일을 수정하고 app.js에서 로컬 포트 ​​번호 대신 PORT를 사용하도록 app.listen을 변경했습니다. 내가 액세스하는 유일한 파일은 app.js이어야하며 표현해야하며 둘 다 있습니다.

저는 node.js에 매우 익숙하며 특급입니다. 이 파일들이 서로간에 어떻게 통신하는지 또는 내 사이트가 실행되는 것을 막기 위해 어떤 일이 일어나고 있는지에 대해 뭔가 빠져 있습니까? 앞으로 이와 같은 것을 디버깅 할 수있는 간단한 방법이 있습니까?

+0

공유 호스팅에 있나요? 아니면 VPS가 있습니까? 공유하는 경우 설치를 요청했거나 이미 설치 했습니까? – Jason

+0

노드 사이트가 공유 창 호스팅에 있습니다. 노드를 설치하도록 요청해야했습니다. 나는 또한 리눅스 공유 호스팅을 가지고 있고 그것을 직접 설치해야만했다. 리눅스 버전은 나와 함께 일하기가 훨씬 더 힘든 과정 이었지만 윈도우 사용자이기 때문에 예상했다. 나는 창문을 통해 내 사이트를 바꿔 치기를 끝내고 그 이후로 좋은 경험을 해왔다. – curtwphillips

답변

2

이 방법을 찾았습니다.

<rewrite> 
     <rules> 
     <rule name="/"> 
      <match url="/*" /> 
      <action type="Rewrite" url="app.js" /> 
     </rule> 
     </rules> 
    </rewrite> 

내가 app.js가 기본 문서로 설정 되었기 때문에이 필요했다 놀랍 : 내 Web.config의에이 코드를 추가했습니다. 분명히 Express는 기본 문서 태그를 사용하는 대신 URL을 다시 작성해야합니다.

관련 문제