node.js per cronjob bringt mich zur Verzweiflung

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/node-js-per-cronjob-bringt-mich-zur-verzweiflung_251658/page_1 - zur Vollversion wechseln!


UnleashThebeast schrieb am 07.07.2018 um 23:53

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:

Code:
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:
Code:
@reboot sudo /usr/bin/node /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js &

was genau mach ich falsch? :/


the_shiver schrieb am 08.07.2018 um 00:46

Zitat
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 schrieb am 08.07.2018 um 00:49

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 schrieb am 08.07.2018 um 11:18

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 :D


JDK schrieb am 08.07.2018 um 13:03

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 schrieb am 08.07.2018 um 13:18

Code:
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 schrieb am 08.07.2018 um 13:26

Meinte den Pfad bevor du ihn absolut gemacht hast. ^^


UnleashThebeast schrieb am 08.07.2018 um 13:35

??? 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.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2024