控制台中没有显示 console.log()(nwjs)

6
在我的nwjs应用中,我从一个HTML文件中加载一个名为_launch.js的文件:
<html>
<body>
<script type="text/javascript" src="_launch.js"></script>
</body>
</html>

在我的_launch.js文件中,我启动了所需的Node进程,用于Express服务器和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连接都完美地工作。但是,当server.listen()回调中的console.log()出现在我的终端时,我尝试从之前所需的server.js文件中记录的任何消息没有出现在任何地方。你有什么想法吗?根据nwjs wiki,通过require()加载的任何文件应该在Node上下文中运行(否则我的文件似乎已经运行),但由于某种原因,我无法使用console.log()查看日志信息。

1
第一个代码块显示的是'_launch.css',而不是js文件的包含。这只是你粘贴的错误代码吗? - Comforse
糟糕,是的,我剪错了 HTML 文件的部分。现在已经更新了。 - arthurakay
3个回答

24

这对我有效,应该被接受的答案! - Antony Ng

17

只需在您的 package.json 中的 chromium-args 中传递--enable-logging=stderr

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

或者像@Jakub Bejnarowicz指出的那样,使用检查背景页面 DevTools。


5

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

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


5
问题在于我在控制台中看不到它。 - Amiga500
我可以在Linux(openSUSE)的控制台窗口和Windows(Windows 10)的“开发人员工具窗口的控制台选项卡”中看到console.log的输出。 - lfree
抱歉一年后才将此标记为答案...但对我来说似乎就是这样。 - arthurakay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接