2016-12-06 10 views
2

Ich habe eine App (Node.js + Express) erstellt, führen Sie es lokal aus. Dann habe ich die Node.js-App in Azure erstellt und Dateien über FTP hochgeladen. Und dann steckte ich - wie man es laufen lässt?Node.js funktioniert lokal aber gibt "Bad Anfrage" remote zurück

Ich fand Art der Remote-Konsole in azurblau und installiert alle Pakete von dort. Aber als ich versucht habe, die App zu starten: "npm start" hatte ich nur eine Zeile zurück: "Ungültige Anfrage". Was heißt das? Was damit zu tun?

Der Anfang ./bin/www Datei:

var app = require('../app'); 
var debug = require('debug')('goWeb:server'); 
var http = require('http'); 

/** 
* Get port from environment and store in Express. 
*/ 

var port = normalizePort(process.env.PORT || '3000'); 
app.set('port', port); 

/** 
* Create HTTP server. 
*/ 

var server = http.createServer(app); 

/** 
* Listen on provided port, on all network interfaces. 
*/ 

server.listen(port); 
server.on('error', onError); 
server.on('listening', onListening); 

GoWeb - ist meine app, in package.js erwähnt.

UPD Ich änderte Port 80 und jetzt habe ich den Fehler "Port 80 erfordert erhöhte Privilegien". Ich habe keine Ahnung, was ich als nächstes tun soll. Dank

+0

Sie müssen Code anzeigen. Z.B. Was macht der Befehl 'npm start'? –

+0

Ich weiß nicht, was es auf azurblau tut (ich glaube etwas anderes), aber lokal geht es zu ./bin/www und www-Datei ausführen. Aber aus der Ferne - selbst wenn ich "node ./bin/www" betreibe - habe ich das gleiche Ergebnis. Und selbst wenn ich "node app.js" ausführe, wird dasselbe zurückgegeben. – mimic

+0

Wie @miparnisari sagte: Du hast keinen Code gezeigt, also ist es irgendwie unmöglich herauszufinden, was vor sich geht. Nur neugierig: Auf welchem ​​Port hört deine App zu? –

Antwort

0

Es scheint, dass Ihre app.js Datei nicht in wwwroot Ordnern ist, wo der Inhalt vom Web-Server iisnode serviert wird, und Sie müssen nicht npm start in Azure Web-Anwendungen zu tun.

Sie einen Blick auf meine wwwroot Struktur annehmen kann, es sieht aus wie diese: enter image description here

Sie auch den Pfad der app.js Datei mit den folgenden Zeilen in web.config anpassen können.

<handlers> 
    <!-- Indicates that the app.js file is a node.js site to be handled by the iisnode module --> 
    <add name="iisnode" path="app.js" verb="*" modules="iisnode"/> 
</handlers> 
+0

Meine App läuft unter Node.js, ohne IIS-Nachverfolgung, daher habe ich keine web.config-Datei. – mimic

+0

In "Azure App Services" bereitgestellte Node.js-Anwendungen verwenden das 'iisnode'-Modul zum Ausführen und die' web.config'-Datei wird automatisch erstellt, wenn eine Datei 'server.js' oder' app.js' als Eingang dient wird in das Verzeichnis 'wwwroot' gestellt. –

+0

Oh, ich sehe, du hast Recht! Ich wusste nichts über IIS. Es klingt komisch. – mimic

Verwandte Themen