Как написать скрипт функции в Express - PullRequest
0 голосов
/ 21 сентября 2018

Я перенаправляю 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>

Спасибо

...