2015-04-07 20 views
6

Nella mia app nwjs, carico un _launch.js file da un file HTML:console.log() non appare nel mio terminale (nwjs)

<html> 
<body> 
<script type="text/javascript" src="_launch.js"></script> 
</body> 
</html> 

E nei miei _launch.js, accendo i processi Node di cui ho bisogno per un express server e un socketIO.

var express = require('express'), 
    app = express(), 
    server = require('http').Server(app), 
    io = require('socket.io')(server), 
    gui = require('nw.gui'), 

    __curDir = process.cwd(), 

    //keep the logic for the IO connections separate 
    ioServer = require(__curDir + '/server.js'); 

//configure Express to default web requests to /workspace/ folder 
app.use(express.static(__curDir + '/workspace')); 

ioServer.init(io, console); 

server.listen(3000, function() { 
    console.log('HTTP server listening on *:3000'); 
    window.location = 'http://localhost:3000/MyApp/'; 
}); 

L'app si avvia correttamente e le mie connessioni express/socketIO funzionano perfettamente.

Ma mentre il console.log() nel callback server.listen() appare nel mio terminale, tutti i messaggi provo ad entrare dalla file di server.js (richiesto in precedenza) non appaiono da nessuna parte.

Qualche idea, perché?

Per il wiki nwjs, tutti i file caricati tramite richiedono() dovrebbe essere in esecuzione nel contesto Node (e la mia altrimenti sembra essere) - ma per qualsiasi motivo, non posso utilizzare console.log() per visualizzare le informazioni registrate.

+1

Il primo blocco di codice mostra "_launch.css", non un'inclusione di file js. È solo il codice sbagliato che hai incollato? – Comforse

+0

WHOOPS sì, ho tagliato la parte sbagliata del file HTML. Aggiornato ora. – arthurakay

risposta

8

Si prega di guardare l'elenco di changes related to node nel wiki nw.js.

Dal nodo-webkit supporta applicazioni GUI invece di applicazioni console, l'output di console.log() (e altri metodi simili come console.warn() e Console.Error()) viene reindirizzato alla console di WebKit . Puoi vederlo nella finestra "Strumenti per sviluppatori" (nella sua scheda "Console").

+2

Il problema è che non lo vedo nella console. –

+0

Riesco a vedere gli output di console.log nella finestra della console su Linux (openSUSE) e nella 'Scheda Console della finestra' Strumenti di sviluppo 'su Windows (Windows 10). – lfree

+0

Ci scusiamo per aver contrassegnato questo come la risposta un anno dopo ... ma sembrava che fosse per me. – arthurakay

8

Basta passare --enable-logging=stderr in chromium-args nel vostro package.json:

{ 
    ... 
    "chromium-args": "--enable-logging=stderr", 
    ... 
} 

O utilizzare i Inspect background page DevTools come @Jakub Bejnarowicz ha sottolineato.