Was ist das PHP die()
entspricht in Node.js?Was ist PHP sterben() entspricht in Node.js
Antwort
process.exit()
ist der äquivalente Aufruf.
Ich würde throw
verwenden. Throw bewirkt, dass die aktuelle Anfrage beendet wird und beendet den Knotenprozess nicht. Sie können diese Ausgabe mit Ihrer Fehleransicht abfangen.
throw new Error('your die message here');
Der Vorteil von 'throw' gegenüber' process.exit() 'ist IMO, dass Sie eine Fehlermeldung haben. Der Nachteil (oder manchmal ein Vorteil) ist, dass es irgendwo eingefangen werden kann. Daher würde ich es nicht als ein "Die()" Äquivalent betrachten, sondern als eine Alternative für viele Anwendungsfälle, die man in Betracht ziehen sollte. –
Up-stimme dies! Ich würde viel lieber "werfen" und meinen "Fang" in Ordnung bringen, anstatt den gesamten Webserver zu vernichten. – AvadData
@AvadData Das hängt eindeutig von Ihrem Anwendungsfall ab.Die Frage ist eindeutig für ein Äquivalent zu "die()", während "werfen" wäre äquivalent zu "werfen" ... –
Es zu stderr berichten muss (statt stdout) und Ausgang mit einem Nicht-Null-Status() sterben ...
function die (errMsg)
{
if (errMsg)
console.error(errMsg);
process.exit(1);
}
Wenn nicht in einer Funktion, können Sie :
return;
Sie können aber auch den Vorschlag von @UliKöhler verwenden:
process.exit();
Es gibt einige Unterschiede:
return
endet anmutiger.process.exit()
abrupter.return
setzt nicht den Exit-Code, wieprocess.exit()
tut.
Beispiel:
try {
process.exitCode = 1;
return 2;
}
finally {
console.log('ending it...'); // this is shown
}
Dies wird mit Exit-Code ending it...
auf der Konsole und Ausfahrt drucken 1.
try {
process.exitCode = 1;
process.exit(2);
}
finally {
console.log('ending it...'); // this is not shown
}
Dies wird 2 nichts auf der Konsole und Ausgang mit Exit-Code drucken.
- 1. PHP: Muss sterben() sterben?
- 2. Entspricht PHP simplexml_load_string in Node.js
- 3. Hash_hmac entspricht in Node.js
- 4. Was ist Python entspricht PHP $ _SERVER?
- 5. PHP - exit oder sterben() in AJAX-Anfragen?
- 6. Wird PHP in der Website-Entwicklungswelt sterben?
- 7. was entspricht = ~ von Ruby in PHP?
- 8. Was ist WPF entspricht ControlPaint.Light?
- 9. Node.js, Cygwin und Socket.io gehen in eine Bar ... Node.js wirft ENOBUFS und alle sterben
- 10. Was ist = & in PHP?
- 11. Was ist: in PHP?
- 12. In node.js "request.on" was ist das ".on"
- 13. Was ist das Stammobjekt in Node.js
- 14. Display sterben ('Nachricht') Problem
- 15. Was entspricht CURL in SCRAPY
- 16. Was ist PostgreSQL entspricht SYSDATE von Oracle?
- 17. Was ist der Cocoa Touch entspricht NSArrayController?
- 18. Was ist C# entspricht Haskells Newtype?
- 19. Was ist das .NET 4.5 entspricht UserNameWSTrustBinding?
- 20. Was ist SQL entspricht LINQ .All()
- 21. Was ist das Objekt entspricht _pluck
- 22. Was ist Ramda entspricht Underscore.js "kompakt"?
- 23. Was entspricht dem InfiniteIterator von PHP in .NET?
- 24. PHP: Entspricht umfassen eval
- 25. AsyncTask-Threads nie sterben
- 26. Was entspricht System.nanoTime() in .NET?
- 27. C# String.Format() Entspricht in PHP?
- 28. Java HashSet entspricht in PHP
- 29. Python entspricht "php -s"
- 30. Was entspricht @autoreleasepool in Swift?
Sie sind nicht gleichwertig. PHPs 'die()' beendet den Server nicht, wie Node.js 'process.exit() 'tut, es stoppt lediglich die Beendigung des verbleibenden Codes in der Datei. Es gibt leider kein Äquivalent. –
@MMiller Das ist teilweise richtig, weil PHP eine völlig andere Architektur hat. PHP ist aus CGI entstanden, in diesem Fall (d. H. Ein einzelner Prozess, der das CGI-Skript ausführt) scheint es mir genau gleich zu sein, da es den Prozess stoppt. Ich betrachte FCGI und ähnliche Technologien lediglich als Optimierung als Gamechanger in dieser Frage. Ich denke daher, dass Ihre Probleme ziemlich pingelig sind und keine realen Probleme IMO widerspiegeln. Ganz ähnlich könnte man sagen, dass das Ausführen mehrerer Supervisord-gestarteter Noten-Instanzen hinter einem Reverse-Proxy dazu führen würde, dass 'process.exit()' den Server nicht stoppt. –
Sie können auch return verwenden, wenn Sie nicht in einer Funktion sind. Es gibt jedoch einige Unterschiede. Siehe meine Antwort für weitere Details. @MMiller Ich denke, das könnte mehr sein, was du meinst? –