2015-04-24 6 views
11

Ich habe eine Anwendung, Express ausgeführt, und ich versuche, es mit electron zu verteilen.Verwendung von Express in Atom Electron

Lauf Elektron im Debug mit diesem:

/path/to/electron/Electron.app/Contents/MacOS/Electron path-to-my-app 

Meine Anwendung läuft völlig in Ordnung. Express Feuer auf seine Server und alles funktioniert - das Hauptfenster richtig mainWindow.loadUrl('http://localhost:3000/'); mit öffnet

Wenn ich die Verteilung Tutorial (verlinkt vor) folgen kopiere ich meine Anwendungsressourcen:

/path/to/electron/Electron.app/Contents/Resources/app 

Aber jetzt, wenn Ich betreibe Electron.app, ich sehe Cannot GET / im Hauptfenster ... aber ich habe keine Ahnung warum.

Irgendwelche Ideen?

Mein einziger Gedanke ist, dass process.cwd() nicht richtig hilft mir das Dokument Wurzel definieren hier:

//configure Express to default web requests to /workspace/ folder 
expressApp.use(express.static(process.cwd() + '/workspace')); 

Aber wenn das der Fall ist, ich weiß nicht, wie um es zu bekommen.

+1

Können Sie ein funktionierendes Beispiel für Elektronen App geben Sie bitte die mittlere Stapel verwendet? Ich würde gerne daraus lernen. – Vishal

Antwort

17

Es stellt sich heraus, dass express aus irgendeinem Grund meine Dokument-Root-Mapping nicht mochte.

Anstatt mit:

//configure Express to default web requests to /workspace/ folder 
expressApp.use(express.static(process.cwd() + '/workspace')); 

ich diese statt:

expressApp.use(express.static(path.join(__dirname, 'workspace'))); 
+4

Sie haben dies vor ein paar Monaten gepostet, ich bin interessiert zu wissen, ob Sie immer noch denken, dass es eine praktikable Option ist, Elektron mit expressjs zu verwenden? –

+5

Ja, mit Express und Electron funktioniert super! – arthurakay

+1

Sehr hilfreich. Vielen Dank. – seongjoo

1

Verwenden Sie nicht process.cwd, verwenden Sie stattdessen process.resourcesPath.

+1

'process.cwd' verursachte Probleme, aber' resourcesPath' löste mein Problem auch nicht. – arthurakay

+0

Sie können 'app.getAppPath()' verwenden, um den App-Pfad abzurufen, unabhängig davon, wo sich Ihre App befindet. Funktioniert sowohl in der Entwicklung als auch in der Produktion –