2016-05-22 5 views
2

Lernen nodejs und begann, meine eigene restful API mit Restify erstellt.kann nicht starten Nodejs Web API gehostet in Azure

Ich habe eine sehr einfache server.js-Datei erstellt, die im Grunde Beispiel Starten wie ein Hallo Welt Typ enthält:

server.post('/api/messages', servicemanager.verifyFramework(), servicemanager.listen()); 

server.get(/.*/, restify.serveStatic({ 
    'directory': '.', 
    'default': 'index.html' 
})); 

server.listen(process.env.port || 3978, function() { 
    console.log('%s listening to %s', server.name, server.url); 
}); 

die feinen lokal arbeitet. Ich kann http://localhost:3978 nicht treffen und ich kann meine API-Anrufe gerade gut rufen http://localhost:3978/api/messages.

Ich habe meinen Code in Bitbucket bereitgestellt und möchte nun diese APIs in Azure unter Verwendung von App Services hosten.

Meine Projektstruktur ist wie folgt:

/topfolder 
    -/myproject 
    -/node_modules 
     -/node_modules... 
    server.js 
    package.json 
    index.html 

Wenn ich Setup die neue App-Dienst in Azure, kann ich sehen, dass der Einsatz den Code von BB empfängt, aber der Service reagiert nicht auf meine Anfragen.

Ich habe den Home-Pfad der App eingerichtet, um zu leben: /site/wwwroot/topfolder/myproject und ich kann die index.html sehen, wenn ich zu http://myproject.azurewebsites.net so gut navigieren.

ich tatsächlich einen Fehler 404: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Es gibt jede Menge Beispiele dafür, wie kontinuierliche Bereitstellung unter Verwendung bitbucket einzurichten und zum größten Teil, sie alle zu funktionieren scheinen, aber meine server.js Datei muß nicht zu sein scheinen das Anrufen oder Starten.

Wie kann ich debuggen, was hier los ist?

Wird die Datei packages.json in diesem Szenario von Azure verwendet?

Danke.

+0

Wenn Sie FTP in Ihre azurblauen Website hochladen, gibt es irgendwo ein Protokoll. Es gibt nicht viele Verzeichnisse, in denen man herumstochern kann, aber in einer der Dateien über Ihrem Projekt in der Verzeichnisstruktur bin ich ziemlich positiv, dass es eine Protokolldatei gibt, die jede von Ihrer App protokollierte Konsolenausgabe enthalten sollte. – Chev

+0

Welche URL benutzen Sie, um Ihre gehostete API zu treffen? –

+0

@Chev danke, das ist die Debug-Konsole, ich habe mich umgesehen, aber nichts springt auf mich. Irgendwelche Hinweise? – Mark

Antwort

2

Der Stammverzeichnispfad der in Azure App Services gehosteten Anwendung lautet D:\home\site\wwwroot. Und über die Anwendung "nodejs" findet das Azure-Fabric das Eingangsskript im Stammverzeichnis wie server.js. Und die Anfragen werden über web.config im Stammverzeichnis behandelt. Wenn die Datei server.js oder web,config fehlt, tritt der Fehler 404 auf.

können Sie versuchen, zu ändern oder die Struktur Ihrer Anwendung, wie zu:

-/node_modules 
    -/node_modules... 
server.js 
package.json 
index.html 

Dann können Sie Ihre Anwendung bereitstellen via GIT Azure oder von BB, die Bereitstellung Azure Aufgabe npm install Befehl ausgeführt wird und erzeugen die web.config wile im Stammverzeichnis.

Alle weiteren Bedenken, bitte zögern Sie nicht, lassen Sie es mich wissen.

+0

Sieht so aus, als ob du diese Struktur haben musstest, denn das hat für mich funktioniert war ein gewaltiger Schmerz. Danke Gary. – Mark