2 Stimmen

Fehlerhafte Visualisierung des Sails.js-Projekts, das auf Openshift bereitgestellt wurde

Ich habe mein Sails-Projekt auf Openshift bereitgestellt. Es funktioniert, aber ich erhalte Fehler mit Websockets und kann Seiten, die auf ejs erstellt wurden, nicht laden.

Ich fand diese Links ausreichend erklärend über grunt/openshift, aber ich bin nicht in der Lage, das Problem zu lösen.

Sails.js auf Openshift bereitstellen

Sails.js auf Openshift bereitstellen ... App startet immer wieder neu

Meine nodejs.log ist:

DEBUG: Running node-supervisor with
DEBUG:   program 'app.js'
DEBUG:   --watch '/var/lib/openshift/537b5ae8500446c95900057f/app-root/data/.nodewatch'
DEBUG:   --ignore 'undefined'
DEBUG:   --extensions 'node|js|coffee'
DEBUG:   --exec 'node'
DEBUG: Starting child process with 'node app.js'
DEBUG: Watching directory '/var/lib/openshift/537b5ae8500446c95900057f/app-root/data/.nodewatch' for changes.
Warnung: connection.session() MemoryStore ist nicht
für eine Produktionsumgebung ausgelegt, da es Speicherlecks verursachen wird
und nicht über einen einzigen Prozess hinaus skalieren wird.
^[[32minfo^[[39m:
^[[32minfo^[[39m:
^[[32minfo^[[39m:    Sails.js           <|
^[[32minfo^[[39m:    v0.9.16             |\
^[[32minfo^[[39m:                       /|.\
^[[32minfo^[[39m:                      / || \
^[[32minfo^[[39m:                    ,'  |'  \
^[[32minfo^[[39m:                 .-'.-==|/_--'
^[[32minfo^[[39m:                 `--'-------'
^[[32minfo^[[39m:    __---___--___---___--___---___--___
^[[32minfo^[[39m:  ____---___--___---___--___---___--___-__
^[[32minfo^[[39m:
^[[32minfo^[[39m: Server gestartet in `/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo`
^[[32minfo^[[39m: Um Ihre App zu sehen, besuchen Sie http://127.2.95.129:8080
^[[32minfo^[[39m: Um Sails herunterzufahren, drücken Sie zu einem beliebigen Zeitpunkt  + C.
^[[34mdebug^[[39m: --------------------------------------------------------
^[[34mdebug^[[39m: :: Mittwoch, 21. Mai 2014 14:26:01 GMT-0400 (EDT)
^[[34mdebug^[[39m:
^[[34mdebug^[[39m: Umgebung  : Produktion
^[[34mdebug^[[39m: Host         : 127.2.95.129
^[[34mdebug^[[39m: Port         : 8080
^[[34mdebug^[[39m: --------------------------------------------------------
^[[31merror^[[39m: Der Server scheint nicht zu starten.
^[[31merror^[[39m: Vielleicht läuft bereits etwas anderes auf Port 8080 mit Hostnamen 127.2.95.129?
^[[32minfo^[[39m: Handshake autorisiert qR_aOT3qx40k6X34CF-2
^[[32minfo^[[39m: Handshake autorisiert tnAUouwi-d32h82rCF-3
^[[33mwarn^[[39m: WebSocket-Verbindung ungültig
^[[32minfo^[[39m: Transportende (undefined)
^[[31merror^[[39m: Fehler beim Rendern der Ansicht unter: /var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/views/viewshows/index
^[[31merror^[[39m: Verwendung des Layouts an: /var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/views/layout
^[[31merror^[[39m: Fehler: Fehler beim Suchen der Ansicht "viewshows/index"
    bei Function.app.render (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/node_modules/express/lib/application.js:495:17)
    bei ServerResponse.res.render (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/node_modules/express/lib/response.js:798:7)
    bei ServerResponse._addResViewMethod.res.view (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/lib/hooks/views/index.js:297:15)
    bei module.exports.index (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/api/controllers/ViewShowsController.js:32:13)
    bei _bind.enhancedFn (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/lib/router/bind.js:375:4)
    bei callbacks (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/node_modules/express/lib/router/index.js:164:37)

Hier ist mein app.js:

require('sails').lift(require('optimist').argv);

Hier ist meine local.js:

module.exports = {
  host: process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1",
  port: process.env.OPENSHIFT_NODEJS_PORT || 8080,
  environment: process.env.NODE_ENV || 'development'
}

Wenn ich 'env | grep OPENSHIFT_NODEJS_PORT' auf der Openshift-Konsole aufrufe, erhalte ich:

OPENSHIFT_NODEJS_PORT=8080

Meiner Meinung nach liegt das Problem nicht am Port. Der Server startet und antwortet korrekt. Aber wenn ich eine auf ejs erstellte Seite aufrufe, antwortet er mir mit einem Stück Json...

{"view":{"name":"viewshows/index","root":"/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/views","defaultEngine":"ejs","ext":".ejs"}}

...und druckt den oben genannten Fehler im Server-Log.

Irgendwelche Vorschläge?

Danke

0voto

Jason Kulatunga Punkte 5724

Ich bin mir ziemlich sicher, dass Openshift erfordert, dass Ihre Anwendung auf einem bestimmten Port hört, der durch eine Umgebungsvariable angegeben ist, und nicht auf 8080.

Sie sollten Ihre app.js ändern, um die Hostname- und Port-Umgebungsvariablen in diesem Openshift-Dokument zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X