node.js per cronjob bringt mich zur Verzweiflung
UnleashThebeast 07.07.2018 - 23:53 2376 7
UnleashThebeast
Mr. Midlife-Crisis
|
Hallo, Folgendes Problem: Ich hab eine index.js in /home/pi/Raspberry-Pi-ESP8266-Weather-Logger wenn ich die im Verzeichnis einfach via "node index.js" starte, funktioniert alles. Will ich die jetzt als cron beim reboot starten und öffne sie dann im Browser krieg ich: Error: Failed to lookup view "index" in views directory "/root/views"
at Function.render (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/application.js:580:17)
at ServerResponse.render (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/response.js:1008:7)
at Query._callback (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js:39:13)
at Query.Sequence.end (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24)
at Query._handleFinalResultPacket (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/sequences/Query.js:139:8)
at Query.EofPacket (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/sequences/Query.js:123:8)
at Protocol._parsePacket (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/Protocol.js:279:23)
at Parser.write (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/Parser.js:76:12)
at Protocol.write (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/Connection.js:103:28)
der cronjob: @reboot sudo /usr/bin/node /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js &
was genau mach ich falsch? :/
|
the_shiver
500 ontopic posts in 10y!
|
Error: Failed to lookup view "index" in views directory "/root/views" ich würd mal sagen das startet als root und unter /root/views/ gibts kein index.js (weil die config relativ vom benutzer nach dem file sucht)
|
JDK
Oberwortwart
|
Dein Express-Server sucht anscheinend im falschen Verzeichnis ("/root") nach der "index"-View.
Du müsstest entweder den Pfad per "app.set('views', '<PFAD>/views');" anpassen oder das Verzeichnis, in dem dein Node-Skript ausgeführt wird.
|
UnleashThebeast
Mr. Midlife-Crisis
|
Es geht übrigens auch nicht, wenn ich das ding via crontab -e vom user starte, dann sucht er in /home/pi/views statt /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/views, Jesus fucking Christ... Ich reiss das Ding jetzt einfach in einem Screen an und hoffe, dass der RPi nicht rebooten muss //edit: den Pfad per "app.set('views', '<PFAD>/views');" anpassen yay, das geht, das Kreuwl rennt! Allerdings schickt mir der ESP noch immer keine Daten in die Datenbank, und ich weiß nicht warum, weil ich mir die Responses die er vom node.js server kriegt im ESPlorer nicht anschauen kann? Ur nice
Bearbeitet von UnleashThebeast am 08.07.2018, 11:42
|
JDK
Oberwortwart
|
Zeig mal, was du da eingetragen hast als Pfad.
Debugging kannst dir einfach mit console.log() oder dem npm Modul "debug" basteln. Bei der Ausführung über einen Cronjob solltest den Output halt in ein File pipen.
Ansonsten kann ich dir "pm2" ans Herz legen, wenn es um das Management von Node-Skripten geht. Da kannst dein Skript im Fehler-Fall oder nachm Reboot auch wieder anstarten.
|
UnleashThebeast
Mr. Midlife-Crisis
|
app.set('views', '/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/views')
Das Node.js Zeug läuft jetzt mal so weit, hab auch versucht alles in ein logfile zu pipen direkt via dem cronjob, aber er schreibt mir nix ins logfile rein. So wies ausschaut schickt mir der ESp8266 keine Daten, weil er den DHT22 nicht auslesen kann, ich versuch grad herauszufinden warum das so ist....
|
JDK
Oberwortwart
|
Meinte den Pfad bevor du ihn absolut gemacht hast. ^^
|
UnleashThebeast
Mr. Midlife-Crisis
|
??? Vorher stand die Zeile da garnicht drinnen, also wird er irgendwelche Pfade genommen haben. Ich kenn mich Stana aus mit node.js und will ganz ehrlich gesagt auch ned wirklich mehr damit zu tun haben. So wie mich das Klumpat jetzt 2 Tage geärgert hat faschier ichs einfach und werd direkt vom ESP8266 zu thingspeak oÄ loggen, das kostet mir weniger Lebenszeit.
|