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