console.log()没有出现在我的终端(nwjs)

art*_*kay 5 javascript node.js node-webkit nw.js

在我的nwjs应用程序中,我从HTML文件加载_launch.js文件:

<html>
<body>
<script type="text/javascript" src="_launch.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在我的_launch.js文件中,我启动了快速服务器和socketIO所需的Node进程.

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/';
});
Run Code Online (Sandbox Code Playgroud)

该应用程序启动很好,我的快递/ socketIO连接都完美的工作.

但是当我的终端中出现server.listen()回调中的console.log()时,我尝试从server.js文件(之前需要)记录的任何消息都不会出现在任何地方.

有什么想法吗?

根据nwjs wiki,通过require()加载的任何文件应该在Node上下文中运行(而且看起来似乎也是如此) - 但无论出于何种原因,我都不能使用console.log()来查看记录的信息.

Jak*_*icz 22

您必须通过右键单击应用程序并Inspect background page从上下文菜单中选择选项来运行DevTools for Background Page .

检查背景页面
点击查看完整大小的图片

这是一个相关的错误报告:0.13-beta3 console.log在节点上下文中不起作用


erm*_*off 11

只是通过--enable-logging=stderrchromium-args的package.json:

{
    ...
    "chromium-args": "--enable-logging=stderr",
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者Inspect background page@Jakub Bejnarowicz指出的那样使用DevTools .


小智 5

请查看nw.js wiki中与节点相关更改列表.

由于node-webkit支持GUI应用程序而不是控制台应用程序,因此console.log()(以及其他类似方法,如console.warn()和console.error())的输出将重定向到WebKit的控制台.您可以在"开发人员工具"窗口("控制台"选项卡)中看到它.

  • 问题是我在控制台中看不到它. (5认同)