Ich versteh das Problem nicht. Du programmierst einen HTTP Server den du dann lokale bei dir startest (mit Python, Node.js, C#, Java, PHP, was auch immer). Das Teil kann ja auf ner beliebigen Maschine gestartet werden, also auch auf deinem PC. Eine Fertig-Server der nur statische Dateien servt wird da nicht reichen denke ich.
Der Server sagt dem HTTP Client (z.B. Browser), was in den x lokalen Verzeichnissen vorhanden ist, denn der Server kann das alles sehen. Client präsentiert das alles dem Benutzer. Benuzter wählt aus. Client-Code sagt dem Server "bitte die Datei X im Verzeichnis Y". Server findet die Datei und streamt den Kram zum Client.
Das kannst du mit allen serverseitig laufenden (!) Programmiersprachen machen (auch JS auf Basis von Node.js), hat also mit der Programmiersprache nix zu tun. Vanilla JS läuft nicht serverseitig, sondern im Client aka Browser.
Wenn du das stattdessen als Desktopanwendung machst, sparst du dir die ganze Server-Client-Kommunikation mit HTTP natürlich, also wahrscheinlich viel einfacher. Kannste aber trotzdem als JS machen mit ELectron, hat also auch wieder nix mit der Programmiersprache zu tun.
NodeJS ist lediglich JS, was in einer anderen Umgebung läuft als im Browser und Vollzugriff aus dein System hat. Electron ist lediglich NodeJS+HTML+CSS, sodass du für den Browser geschriebenen GUI-Code wiederverwenden kannst.