nodejs 打印 console.log 到 http
nodejs print console.log to http
我用多个条件在 NodeJS 中制作了一个脚本。
我想 export/print console.log 使用 NodeJS 服务器的网页。
function myfunction() {
app('Some text', 'ALERT!', function(err, remaining) {
if (err) throw err;
console.log('Some text.');
这可能吗?我到处找过。
非常感谢!
为了 export/print 网页的 console.log(...)
结果,您可以覆盖 console.log
并使其在服务器控制台打印之前发出消息。然后消息将使用 Web Socket 和页面中的 printed/used 发送到浏览器。
示例代码如下。
服务器端:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = process.env.PORT || 3000;
var events = require('events');
var eventEmitter = new events.EventEmitter();
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
eventEmitter.on('logging', function(message) {
io.emit('log_message', message);
});
http.listen(port, function(){
console.log('listening on *:' + port);
});
// Override console.log
var originConsoleLog = console.log;
console.log = function(data) {
eventEmitter.emit('logging', data);
originConsoleLog(data);
};
// code for test.
setInterval(function() {
console.log('X: ' + Math.random());
}, 2000);
浏览器端:
<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<ul id="messages"></ul>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function () {
var socket = io();
socket.on('log_message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
</script>
</body>
</html>
我用多个条件在 NodeJS 中制作了一个脚本。 我想 export/print console.log 使用 NodeJS 服务器的网页。
function myfunction() {
app('Some text', 'ALERT!', function(err, remaining) {
if (err) throw err;
console.log('Some text.');
这可能吗?我到处找过。
非常感谢!
为了 export/print 网页的 console.log(...)
结果,您可以覆盖 console.log
并使其在服务器控制台打印之前发出消息。然后消息将使用 Web Socket 和页面中的 printed/used 发送到浏览器。
示例代码如下。
服务器端:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = process.env.PORT || 3000;
var events = require('events');
var eventEmitter = new events.EventEmitter();
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
eventEmitter.on('logging', function(message) {
io.emit('log_message', message);
});
http.listen(port, function(){
console.log('listening on *:' + port);
});
// Override console.log
var originConsoleLog = console.log;
console.log = function(data) {
eventEmitter.emit('logging', data);
originConsoleLog(data);
};
// code for test.
setInterval(function() {
console.log('X: ' + Math.random());
}, 2000);
浏览器端:
<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<ul id="messages"></ul>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function () {
var socket = io();
socket.on('log_message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
</script>
</body>
</html>