Diskussion Dateien schreiben mit JavaScript

TM69

Bekanntes Mitglied
Wo ist denn das genaue Problem, an dem du scheitert? Und was für eine Scriptsprache willst du nutzen?

Jede Scriptsprache, die ich kenne, kann Dateien schreiben und dann auch Aufrufe machen ... also als cmd Script kannst du mit echo Text in eine Datei schreiben und Aufrufe sind auch einfach durchführbar .... daher sehe ich im Augenblick nicht, wo das Problem sein könnte
Stimmt, sogar wenn du JavaScript verwendest gibt es (im beschränkten Masse) die Möglichkeit Dateien zu schreiben.
 

TM69

Bekanntes Mitglied
Dieses ist nicht nur stark Abhängig vom Browser, sondern auch von den Sicherheitseinstellungen. Nur zum Verständnis. Ich spreche gerad von clientseitigen File-Operationen.
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Fas ist aber dann kein Thema der Scriptsprache sondern des Environments, in dem ausgeführt wird.

JavaScript bietet hier auch volle Funktionalität wie man z.B. bei Node.js sehen kann.

Nur weil ich etwas unter einem User ausführe, der nirgends Schreibrechte hat, kann ich der Scriptsprache nicht vorwerfen, etwas nicht zu können ....
 

TM69

Bekanntes Mitglied
Fas ist aber dann kein Thema der Scriptsprache sondern des Environments, in dem ausgeführt wird.

JavaScript bietet hier auch volle Funktionalität wie man z.B. bei Node.js sehen kann.

Nur weil ich etwas unter einem User ausführe, der nirgends Schreibrechte hat, kann ich der Scriptsprache nicht vorwerfen, etwas nicht zu können ....
NodeJS ist eine serverseitige Plattform, deshalb habe ich auch bewusst geschrieben, Clientseitig.

Nachtrag: Oder um es nochmal etwas genauer zu sagen. Die File I/Os finden clientseitig in einer Sandbox statt. Dieses ist auch nur verständlich, da sonst ein Server Zugriff auf alle Dateien des Besuchers hätte.
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Dieses ist nicht nur stark Abhängig vom Browser, sondern auch von den Sicherheitseinstellungen. Nur zum Verständnis. Ich spreche gerad von clientseitigen File-Operationen.
Ach so...
NodeJS ist eine serverseitige Plattform, deshalb habe ich auch bewusst geschrieben, Clientseitig.

Ich habe X in JavaScript geschriebene Anwendungen auf Rechner und Handy, die nicht in das Client/Server-Schema passen und völlig problemlos Dateien anlegen können. Pauschal JavaScript=Browser und NodeJS=Server ist schon sehr stark verkürzt und an der Realität vorbei...

Das Sandbox-Model hat Java übrigens auch (sogar schon vor JavaScript?), dank SecurityManager überall wo‘s läuft :)
 
K

kneitzel

Gast
JavaScript ist nur die reine Sprache. Die ist unabhängig von der Implementierung. Evtl. ist es sogar angebrachter von ECMAScript zu sprechen, um das deutlich zu machen.

Das ist nicht mit irgendwelchen Implementationen und Umgebungen zu verwechseln.

Und die Unterteilung ist auch etwas dubios: Node.js basiert ja auf der Engine von Chrome .... das zeigt ja auch etwas, dass es keine zwei separat zu sehende Dinge sind ....
 

TM69

Bekanntes Mitglied
Also mir wäre es etwas völlig neues, dass Node.js in Javascript geschrieben wäre. Ich lasse mich aber gerne etwas neues belehren. /ironion Ich dachte immer Node.js wäre in C/C++ geschrieben worden /ironie off

Achja nochetwas @mrBrown
Ich habe X in JavaScript geschriebene Anwendungen auf Rechner und Handy, die nicht in das Client/Server-Schema passen und völlig problemlos Dateien anlegen können. Pauschal JavaScript=Browser und NodeJS=Server ist schon sehr stark verkürzt und an der Realität vorbei...
ich habe Node.js für Entwicklung auf meinem lokalen Rechner laufen. Ist daher mein Rechner jetzt ein Server /ironi off o_O o_O o_O
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Also mir wäre es etwas völlig neues, dass Node.js in Javascript geschrieben wäre. Ich lasse mich aber gerne etwas neues belehren. /ironion Ich dachte immer Node.js wäre in C/C++ geschrieben worden /ironie off
Hier hat doch niemand irgendwas dazu gesagt, in welcher Sprache NodeJS selbst geschrieben ist, noch dazu ist es völlig irrelevant?
 
K

kneitzel

Gast
Sorry, aber was soll das jetzt? Lies noch einmal meinen Beitrag, gehe evtl. noch einmal auf die Seite von Nodejs.org ....
 

sascha-sphw

Top Contributor
Also mir wäre es etwas völlig neues, dass Node.js in Javascript geschrieben wäre. Ich lasse mich aber gerne etwas neues belehren. /ironion Ich dachte immer Node.js wäre in C/C++ geschrieben worden /ironie off

Achja nochetwas @mrBrown

ich habe Node.js für Entwicklung auf meinem lokalen Rechner laufen. Ist daher mein Rechner jetzt ein Server /ironi off o_O o_O o_O

IroniParseException in line 6 /ironion was expected.

SCNR :D:p
 
K

kneitzel

Gast
Wobei ich mich frage, wo da Ironie ist. Wenn ein Projekt in c++ geschrieben ist und dann kommt jemand daher und nutzt dieses Projekt für ein neues Projekt (= das Projekt basiert dann auf dem anderen ... auf Englisch könnte man sagen build on ... so haben sich zumindest die nodejs Leute ausgedrückt), dann ist dies auch in c++ geschrieben ..

Wenn man gewisse Projekte nutzt, dann sollte man evtl. auch etwas die Entwicklung des Projektes kennen ... zumindest ist das mein Anspruch ...
 

TM69

Bekanntes Mitglied
Ersteinmal NodeJS ist keine Programmiersprache. Es ist eine Laufzeitumgebung. Er führt Javascript Code in einer
JS-Knoten aus. Genauso wie Java eine Sprache und JRE eine Laufzeitumgebung ist, ist Javascript eine Sprache und
NodeJS ist eine Laufzeitumgebung innerhalb eines Computers / Servers.

NodeJS läuft auf verschiednen Plattformen. Wie auch eine JRE auf verschiednen Plattformen (Windows, Mc, Linux und Co)

NodeJS verwendet JavaScript auf dem Server genau wie wir Java-Servlets auf einem Tomcat-Server/Container verwendet.
Genauso wie JSP Code ist, der in HTML Seiten eingebett ist und durch Interaktionen mit Serices (z.B. Datenbank)
dynamische Inhalte erstellen kann. Auf dem Computer/Server wir der gesammte JSP-Code wiederum in Servlets konvertiert
und durch entsprechenden Inhalt ersetzt und an den Browser / Client gesendet.

JavasScript kann mit Hilfe der Chrome's V8 JavaScript engine in einem Browser ausgeführt werden.

Beim serverseitigen ausführen wird, unter Verwendung des JS-Knotens, in einem öffentlichen Ordner schreiben.
Außerdhalb des öffentlichen Ordners ist für den Client nicht sichtbar, da es auf der Serverseit ausgeführt wird.

Deshalb verstehe ich momentan nicht so ganz was ihr mir jetzt hier beweisen wollt.
 
K

kneitzel

Gast
Lol, du bringst absolut unsinnige Aussagen, verstehst einfache Aussagen, die sogar auf nodejs.org stehen, falsch und meinst, wir würden uns lachhaft machen ...

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

Und die Trennung in Client / Server ist so unsinn. Node.js lässt sich auch auf dem Client einsetzen.

Es sind einfache Technologien, die zwar auf etwas bestimmtes Hinzielen, aber dennoch sind so pauschale Aussagen schlich falsch.

Wenn ma auf Java schaut, dann könnte man Spring (Boot) nehmen. Das ist auf Server Lösungen ausgerichtet. Aber dennoch spricht nichts dagegen, es auch auf Client Seite einzusetzen (z.B. als DI Framework).

Also bitte kein so starres Denken. Das ist alles, worauf wir Dich aufmerksam machen wollten....
 

mrBrown

Super-Moderator
Mitarbeiter
Ersteinmal NodeJS ist keine Programmiersprache. Es ist eine Laufzeitumgebung. Er führt Javascript Code in einer
JS-Knoten aus. Genauso wie Java eine Sprache und JRE eine Laufzeitumgebung ist, ist Javascript eine Sprache und
NodeJS ist eine Laufzeitumgebung innerhalb eines Computers / Servers.
Richtig. Niemand hier hat etwas anderes behauptet.

NodeJS verwendet JavaScript auf dem Server genau wie wir Java-Servlets auf einem Tomcat-Server/Container verwendet.
Nein, das Pendant zu NodeJS ist nicht ein Tomcat, sondern einfach nur ein JRE.

Man braucht nicht mal NodeJS um JavaScript lokal laufen zu lassen, GraalVM oder Deno können das genauso, und beide sind auch kein Pendant zu einem Tomcat - das sollte besonders die GraalVM deutlich zeigen. Die alte Nashorn-Engine ist auch keine Server-Laufzeit gewesen.

JavasScript kann mit Hilfe der Chrome's V8 JavaScript engine in einem Browser ausgeführt werden.
Genauso übrigens wie früher Java-Applets. Trotzdem würde niemand sagen, dass man mit Java nur begrenzt Dateien schreiben kann - und das trotz dessen, das man die JVM mehr einschränken kann als NodeJS.


Beim serverseitigen ausführen wird, unter Verwendung des JS-Knotens, in einem öffentlichen Ordner schreiben.
Außerdhalb des öffentlichen Ordners ist für den Client nicht sichtbar, da es auf der Serverseit ausgeführt wird.
Keine Ahnung was das sagen soll. Man kann generell überall dort schreiben, wo man Schreibrechte besitzt. Was ein Client dann sehen kann, ist aber völlig unabhängig davon. NodeJS selbst schränkt einen dabei nicht ein, es kennt das Prinzip eines „öffentlichen Ordners“, auf den irgendein Client Zugriff hat, nicht.
 

TM69

Bekanntes Mitglied
Lol, du bringst absolut unsinnige Aussagen, verstehst einfache Aussagen, die sogar auf nodejs.org stehen, falsch und meinst, wir würden uns lachhaft machen ...



Und die Trennung in Client / Server ist so unsinn. Node.js lässt sich auch auf dem Client einsetzen.

Es sind einfache Technologien, die zwar auf etwas bestimmtes Hinzielen, aber dennoch sind so pauschale Aussagen schlich falsch.

Wenn ma auf Java schaut, dann könnte man Spring (Boot) nehmen. Das ist auf Server Lösungen ausgerichtet. Aber dennoch spricht nichts dagegen, es auch auf Client Seite einzusetzen (z.B. als DI Framework).

Also bitte kein so starres Denken. Das ist alles, worauf wir Dich aufmerksam machen wollten....
Dann kann ich dir nur empfehlen dieses entweder mit Quellenangabe zu untermauern, andernfalls kann ich dir nur empfehlen die NodeJS Doch zu lesen
 

TM69

Bekanntes Mitglied
Richtig. Niemand hier hat etwas anderes behauptet.
Dann sind wir uns ja einig.

Nein, das Pendant zu NodeJS ist nicht ein Tomcat, sondern einfach nur ein JRE.

Man braucht nicht mal NodeJS um JavaScript lokal laufen zu lassen, GraalVM oder Deno können das genauso, und beide sind auch kein Pendant zu einem Tomcat - das sollte besonders die GraalVM deutlich zeigen. Die alte Nashorn-Engine ist auch keine Server-Laufzeit gewesen.
Da gebe ich dir Recht, war etwas hastig geschrieben. Aber das habe ich weiter oben im Text schon beschrieben.

Genauso übrigens wie früher Java-Applets. Trotzdem würde niemand sagen, dass man mit Java nur begrenzt Dateien schreiben kann - und das trotz dessen, das man die JVM mehr einschränken kann als NodeJS.
Dieses hat ja auch niemand behauptet, das man mit Java begrenzt Dateien schreiben kann. Habe ich das an irgendeiner Stelle behauptet? Bitte zeige diese Stelle, andernfalls bitte ich dich diese Unterstellungen zu unterlassen.
 

mrBrown

Super-Moderator
Mitarbeiter
Da gebe ich dir Recht, war etwas hastig geschrieben. Aber das habe ich weiter oben im Text schon beschrieben.
Gut, dann stimmst du ja jetzt zu, dass NodeJS keine „Server-Software“ ist, sondern vergleichbar mit der JVM und ähnlich breit einsetzbar?

(Wenn bei dir beim „hastig schreiben„ das komplette Gegenteil dessen, was du sagen wolltest, herauskommt, solltest du dir vielleicht mehr Zeit lassen...)


Dieses hat ja auch niemand behauptet, das man mit Java begrenzt Dateien schreiben kann. Habe ich das an irgendeiner Stelle behauptet? Bitte zeige diese Stelle, andernfalls bitte ich dich diese Unterstellungen zu unterlassen.
An deinem Leseverstehen arbeitest du aber noch mal?
Im zitierten Absatz steht „Trotzdem würde niemand sagen“. Das ist ganz offensichtlich keine Unterstellung, dass du es gesagt hast.

Du hast allerdings gesagt, dass man mit JavaScript nur in beschränkten Maße Dateien schreiben kann.
Die „Beschränkungen“ von JavaScript gelten im gleichen Maße aber auch für Java (sie Applets und SecurityManager).

Wenn X (JavaScript) und Y (Java) die gleichen Voraussetzungen (Filesystem-Zugriffe lassen sich einschränken) haben, und du sagst, dass deshalb für X etwas gilt (kann nur begrenzt Dateien schreiben), muss das ebenso für Y gelten - genau das streitest du aber ab.
 
K

kneitzel

Gast
Welche Aussage soll ich bitte untermauern? Bitte etwas exakter sein bei Deinen Forderungen!

Die Aussge bezüglich dem 'basiert auf' habe ich bereits mit einem klaren Zitat belegt meine ich ....

Willst du belegt haben, dass man NodeJS auf dem Client verwenden kann? Wie wäre es z.B. mit

Da hast du ein kleines Beispiel...

Somit kann man mit nodejs auch client Applikationen schreiben ...

Was soll bitte sonst noch untermauert werden? Was für Beispiele willst du noch haben?
 

mrBrown

Super-Moderator
Mitarbeiter
Willst du belegt haben, dass man NodeJS auf dem Client verwenden kann? Wie wäre es z.B. mit
Da hast du ein kleines Beispiel...

Somit kann man mit nodejs auch client Applikationen schreiben ...
Ich würde das allerdings nicht als Client-Applikation bezeichnen, das hat ja nichts mit Client-Server zu tun.
 
K

kneitzel

Gast
Ich würde das allerdings nicht als Client-Applikation bezeichnen, das hat ja nichts mit Client-Server zu tun.
Dann müsste man kurz definieren, was man als Client Applikation bezeichnet. Für mich ist es alles, was auf dem Client läuft, wobei Client halt ein System mit Endbenutzer ist. (Als kleiner Versuch einer Definition).

Also nicht zwangsläufig ein Teil einer Client/Server Infrastruktur.

Aber auch mit dieser Definition von Dir sollte es kein Thema sein. Dann hole ich den Ausgabetext von einem Webservice. Das ist ja auch mit NodeJS kein Thema... Möglichkeiten nennt z.B.

Wobei dann die Trennung in Server und Client eh schnell dubios wird, denn ein Server kann auch gleichzeitig ein Client sein .... die Server Applikation kann ja auch andere Server Applikationen als Client ansprechen... das macht die Definition dann ggf. noch etwas komplexer und zeigt, dass eine klare Definition bei Nutzung der Wörter durchaus Sinn macht.
 

mrBrown

Super-Moderator
Mitarbeiter
Dann müsste man kurz definieren, was man als Client Applikation bezeichnet. Für mich ist es alles, was auf dem Client läuft, wobei Client halt ein System mit Endbenutzer ist. (Als kleiner Versuch einer Definition).
Grundsätzlich stimm ich dir zu, im Sinne dieses Threads würd ich aber trennen. Für @TM69 sind Client-Anwendungen im Browser-laufend, unabhängig von Browser und Server laufenden würd ich einfach als „ganz normale Programme“ bezeichnen.
 
K

kneitzel

Gast
Grundsätzlich stimm ich dir zu, im Sinne dieses Threads würd ich aber trennen. Für @TM69 sind Client-Anwendungen im Browser-laufend, unabhängig von Browser und Server laufenden würd ich einfach als „ganz normale Programme“ bezeichnen.
Die Definition dann aber begrenzt auf JavaScript?

Aber selbst das ist problematisch, denn was ist mit Apache Cordova oder ähnlichen Frameworks wie z.B. Elektron? Das sind auch "JavaScript Applikationen", die in einem Browser laufen (Der "App-Rahmen" ist ja mehr oder weniger nur ein Browser, der die App anzeigt. ... )

Und spätestens da sieht man ja, dass diese Applikationen nicht wirklich limitiert sind. Voller Zugriff auf Native Elemente ist gegeben. Was auch wieder klar zeigt, dass es eben nicht eine Frage der Sprache (JavaScript bzw. ECMAscript wenn man genau sein will) sondern eben des Environments.

So kann auch eine "Server Applikation" mit NodeJS beschränkt werden. Ich muss lediglich die Umgebung beschränken. Ich könnte z.B. eine NodeJS Applikation unter einem User laufen lassen, der nirgends Schreibrechte hat. Dann ist die Umgebung so angepasst, dass es eben keinen Schreibzugriff auf irgendwas gibt. Oder unter Windows könnte ich über Hooks dafür sorgen, dass eine Applikation keine Schreibzugriffe machen darf. oder ....
Den Ideen sind hier keine Grenzen gesetzt und es findet sich alles ... User ohne Schreibrechte wird gerne bei Webservern gemacht im Rahmen des Hardenings (So die Anforderungen dies zulassen). Oder das mit den Hooks findet sich teilweise bei Terminal Server Applikationen (AppSense bzw. seit einiger Zeit halt Ivanti arbeitet z.B. auf der Ebene ...)
 

mrBrown

Super-Moderator
Mitarbeiter
@mrBrown, @JustNobody und @TM69:
Ich finds lustig wie ihr euch kloppt. So nach dem Motto: "In der Theorie können Physiker auch beweisen, dass ein Elefant mit seinem Schwanz an einem Gänseblümchen von einer Klippe herunterhängt."
Eher so als ob jemand sagt „Elefanten können nicht laufen“ und das dann korrigiert wird :)

JavaScript ist eben nicht nur im Browser oder mit NodeJS als Server nutzbar - sowas muss man dann schon mal berichtigen :)
 

Schuriko

Bekanntes Mitglied
Eher so als ob jemand sagt „Elefanten können nicht laufen“ und das dann korrigiert wird :)

JavaScript ist eben nicht nur im Browser oder mit NodeJS als Server nutzbar - sowas muss man dann schon mal berichtigen :)
Also das "Elefanten nicht laufen können" lese ich aus diesem Thread eher weniger. Eher so: "Wenn ein Elefant keine Beine hat, dann kann er nicht laufen". Und andere hier dann meinen: "Dann hole ihm einen Rollwagen, dann kann er sich fortbewegen". :) Ich sehe daher nicht wo die falsche Aussage herrührt.
 

mihe7

Top Contributor
Bitteschön:

1-1213888416aeXz.jpg
 
K

kneitzel

Gast
Also ich sehe hier kein kloppen. Der Gedankenaustausch mit @mrBrown finde ich interessant. @TM69 fand ich etwas irritierend - sein #11 bezüglich Sprache, in der NodeJS geschrieben ist ... etwas um das es doch gar nicht ging und da wird dann ein Meinungsaustausch zumindest eingeschränkt... wenn einfache Aussagen verdreht werden, ist es in der Regel vorbei mit einem Meinungsaustausch ....
 
K

kneitzel

Gast
Das ihr Spaß macht ist ja auch offensichtlich und auch in Ordnung ... aber da es abgeklungen ist wollte ich einfach kurz meine Sicht darstellen ...
 

mrBrown

Super-Moderator
Mitarbeiter
Also das "Elefanten nicht laufen können" lese ich aus diesem Thread eher weniger. Eher so: "Wenn ein Elefant keine Beine hat, dann kann er nicht laufen". Und andere hier dann meinen: "Dann hole ihm einen Rollwagen, dann kann er sich fortbewegen". :) Ich sehe daher nicht wo die falsche Aussage herrührt.

Die erste falsche Aussage ist das "Javascript kann nur begrenzt Dateien schreiben", dann kommt "Javascript es entweder Client im Browser oder NodeJS aufm Server" und dann halt noch der Unsinn der darauf folgte...
 

Schuriko

Bekanntes Mitglied
Die erste falsche Aussage ist das "Javascript kann nur begrenzt Dateien schreiben", dann kommt "Javascript es entweder Client im Browser oder NodeJS aufm Server" und dann halt noch der Unsinn der darauf folgte...
Aber wieso ist doch korrekt. Steht sogar auf der Internetseite von NodeJS selbst:
Node.js is a free, open-sourced, cross-platform JavaScript run-time environment that lets developers write command line tools and server-side scripts outside of a browser.

und etwas anderes kann ich persönlich daraus nicht lesen, was @TM69 geschrieben hat. Aber korrigiert mich wenn es nicht stimmen sollte. Aber ich will diesen Thread nicht neu aufwärmen.
 

Schuriko

Bekanntes Mitglied
Ich habe gerad eben mrBrown schon mal angschrieben, verstehe gerad nicht wieso mein Beitrag

Die erste falsche Aussage ist das "Javascript kann nur begrenzt Dateien schreiben", dann kommt "Javascript es entweder Client im Browser oder NodeJS aufm Server" und dann halt noch der Unsinn der darauf folgte...
Aber wieso ist doch korrekt. Steht sogar auf der Internetseite von NodeJS selbst:
Node.js is a free, open-sourced, cross-platform JavaScript run-time environment that lets developers write command line tools and server-side scripts outside of a browser.

und etwas anderes kann ich persönlich daraus nicht lesen, was @TM69 geschrieben hat. Aber korrigiert mich wenn es nicht stimmen sollte. Aber ich will diesen Thread nicht neu aufwärmen.
in einem falschen Thread gepostet.
 

mrBrown

Super-Moderator
Mitarbeiter
Aber wieso ist doch korrekt. Steht sogar auf der Internetseite von NodeJS selbst:


und etwas anderes kann ich persönlich daraus nicht lesen, was @TM69 geschrieben hat. Aber korrigiert mich wenn es nicht stimmen sollte. Aber ich will diesen Thread nicht neu aufwärmen.
Nur weil Node.js serverseitig JavaScript ausführen kann, macht es das noch nicht zu einer Serverseitigen Plattform, die man Servlet-Containern vergleichbar ist.

Und Node.js und Browser sind halt noch lange nicht alle Umgebungen. Auch du wirst vermutlich auf deinem Handy ein paar Anwendungen haben, die in JavaScript geschrieben sind, nicht in einem Browser laufen und absolut nicht als Server bezeichnet werden können.

Und die Einschränkungen, denen JavaScript je nach Ausführungsumgebung unterliegt, gibt es für Java genauso.
Wer sagt, mit JavaScript kann man nur eingeschränkt Dateien schreiben, muss konsequenterweise das gleiche über Java sagen.

(und davon ab gab’s ja noch andere zweifelhafte Aussagen)
 
K

kneitzel

Gast
Du hat’s im originalen Thread gepostet aber ein Moderator hat diese Teile abgespaltet.

Und es ist doch genug geschrieben worden. Und nur die Aussagen bezüglich
a) NodeJs sei auf Server (Nicht auf Client, denn Client ist immer Browser....)
b) Dein Zitat der Webseite von wegen everywhere / Commandline Tools

Dann ist abgeklungen, dass es durchaus mehr gibt als nur Browser und NodeJs ...

Was soll ich also noch schreiben, wenn alles so oberflächlich gesehen wird?
 

Ähnliche Java Themen

Neue Themen


Oben