console.log() не отображается в моем терминале (nwjs)

В моем приложении nwjs я загружаю файл _launch.js из HTML-файла:

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

И в моем файле _launch.js я запускаю процессы Node, которые мне нужны для экспресс-сервера и 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/';
});

Приложение запускается нормально, и все мои соединения express/socketIO работают отлично.

Но хотя console.log() в обратном вызове server.listen() появляется в моем терминале, любые сообщения, которые я пытаюсь записать из файла server.js (ранее ) нигде не появляюсь.

Есть идеи, почему?

Согласно вики nwjs, любые файлы, загруженные с помощью require(), должны работать в контексте узла (и мой в противном случае выглядит так), но по какой-то причине я не могу использовать console.log () для просмотра зарегистрированной информации.


person arthurakay    schedule 07.04.2015    source источник
comment
Первый блок кода показывает «_launch.css», а не включение файла js. Это просто неправильный код, который вы вставили?   -  person Comforse    schedule 07.04.2015
comment
Упс, да, я вырезал не ту часть HTML-файла. Обновлено сейчас.   -  person arthurakay    schedule 07.04.2015


Ответы (3)


Пожалуйста, просмотрите список изменений, связанных с узлом, в вики nw.js. .

Поскольку node-webkit поддерживает приложения с графическим интерфейсом вместо консольных приложений, вывод console.log() (и других подобных методов, таких как console.warn() и console.error()) перенаправляется на консоль WebKit. Вы можете увидеть его в окне «Инструменты разработчика» (на вкладке «Консоль»).

person Serg de Adelantado    schedule 15.05.2015
comment
Проблема в том, что я не вижу его в консоли. - person Wexoni; 22.12.2015
comment
Я вижу выходные данные console.log в окне консоли в Linux (openSUSE) и на вкладке «Консоль окна инструментов разработчика» в Windows (Windows 10). - person lfree; 31.01.2016
comment
Извините, что пометил это как ответ год спустя ... но, похоже, это было для меня. - person arthurakay; 01.02.2016

Вы должны запустить DevTools для фоновой страницы, щелкнув правой кнопкой мыши свое приложение и выбрав параметр Проверить фоновую страницу в контекстном меню.

Проверить фоновую страницу
нажмите, чтобы открыть полноразмерное изображение

Вот соответствующий отчет об ошибке: 0.13-beta3 console.log не работает в контексте узла< /а>

person Jakub Bejnarowicz    schedule 01.02.2016
comment
Это работает для меня, это должен быть принятый ответ! - person Antony Ng; 29.12.2018

Просто передайте --enable-logging=stderr в chromium-args в файле package.json:

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

Или используйте Inspect background page DevTools, как указал @Jakub Bejnarowicz.

person ermenkoff    schedule 16.08.2016