console.log не является функцией в nodejs fs.readfile - PullRequest
0 голосов
/ 09 декабря 2018

Я мирно изучал nodejs.и я узнал о fs.readFile.Поэтому для практики я сделал простой код.

var list;
fs.readFile('list.txt', 'utf8', function(err, data){
list=data;
});

, но когда я получил значение list, оно было «неопределено».

Итак, я попытался уточнить значение данных следующим образом

var list;
fs.readFile('list.txt', 'utf8', function(err, data){
list=data;
console.log(data);
});

проблема начала.
Я получил ошибку, TypeError: console.log не является функцией.

Итак, я проверил много вопросов, таких как this или это ...

Но я не смог найти ответ на свой вопрос.

Почему происходит эта ошибка, и как я могу остановить ее?

полный код

var http = require('http');
var fs = require('fs');
var url = require('url');
  var printconsole="";
function console(data){
  return "<script>console.log(\""+data+"\");</script>";
}
  var app = http.createServer(function(request,response){
  var template;
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    var title = queryData.id;
    var main;
    var list;
    fs.readFile('list.txt', 'utf8', function(err, data){
        console.log("data");
        list=data;
    });
    fs.readFile(`${queryData.id}.txt`, 'utf8', function(err, data){ 
        main=data;
    });
    if(_url == '/'){
      title = 'Web';
      main = `world wide web`;
    }
    if(_url == '/favicon.ico'){
      return response.writeHead(404);
    }
    response.writeHead(200);
    template = `
    <!doctype html>
    <html>
    <head>
      <style>
        body{
          width:-webkit-fill-availble;
          height:-webkit-fill-availble;
        }
        header{
          width:100%;
          height:10%;
          border-bottom:1px solid #111111;
        }
        aside{
          width:10%;
          height:560px;
          border-right:1px solid #111111;
          float:left;
        }
        article{
          width:85%;
          height:85%;
        }
      </style>
      <meta charset="utf-8">
    </head>
    <body>
          <header><h1>${title}</h1></header>
          <aside>${list}</aside>
           <article>${main}</article>
        </body>
    </html>
    `;
    response.end(template);
});

app.listen(3000);

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

имя функции не должно быть консольным, поскольку, если и т. Д.

function console(data){
  return "<script>console.log(\""+data+"\");</script>";
}

- это проблема.Вы должны изменить его имя.

0 голосов
/ 09 декабря 2018
function console(data){
  return "<script>console.log(\""+data+"\");</script>";
}

Вы перезаписали console своей собственной функцией, у которой нет свойства log.

...