Я перенаправляю console.log в html, и этот сценарий работает.
Оставил app.js чистым,
var app = require('express')();
var http = require('http').Server(app);
var port = process.env.PORT || 3000;
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
http.listen(port, function(){
console.log('listening on *:' + port);
});
и скрипт находится в части html
<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<div id="log"></div>
<script>
(function () {
if (!console) {
console = {};
}
var old = console.log;
var logger = document.getElementById('log');
console.log = function (message) {
if (typeof message == 'object') {
logger.innerHTML += (JSON && JSON.stringify ? JSON.stringify(message) : String(message)) + '<br />';
} else {
logger.innerHTML += message + '<br />';
}
}
})();
setInterval(function() {
console.log('X: ' + Math.random());
}, 2000);
</script>
</body>
</html>
Мне нужно изменить сценарий, где я могу поместить скрипт в app.js.Я провожу некоторые исследования и указываю на JSDOM.
-
Но функциональная часть не работает.Я получил ReferenceError: документ не определен.
Примечание: JSDOM явно преуспел, когда я закомментировал функцию
в app.js
var app = require('express')();
var http = require('http').Server(app);
var port = process.env.PORT || 3000;
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
http.listen(port, function(){
console.log('listening on *:' + port);
});
var jsdom = require("jsdom").JSDOM;
jsdom.fromFile('./index.html').then(function(dom){
let window = dom.window;
document = window.document;
});
// (function () {
// if (!console) {
// console = {};
// }
// var old = console.log;
// var logger = document.getElementById('log');
// console.log = function (message) {
// if (typeof message == 'object') {
// logger.innerHTML += (JSON && JSON.stringify ? JSON.stringify(message) : String(message)) + '<br />';
// } else {
// logger.innerHTML += message + '<br />';
// }
// }
// })();
setInterval (function() {
console.log('X: ' + Math.random());
var logger = document.getElementById('log');
console.log(logger.innerHTML);
}, 2000);
и в индексе.html
<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<div id="log"></div>
</body>
</html>
Спасибо