javascript - Node : TypeError: Cannot read property 'on' of undefined

标签 javascript json node.js

我正在尝试使用 Node JS 解析 JSON 文件,但该文件似乎无法正确读取。我不断收到此错误:

request.on("error", function(error){
       ^

TypeError: Cannot read property 'on' of undefined
    at Object.<anonymous> (/Users/jaeeunlee/Downloads/takehome_test-master/prediction.js:31:8)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3

我的 Node JS 文件:

var fs = require("fs");

var request = fs.readFile("blog_data.json", 'utf8', function(response){
   var body = "";
   console.log(response.statusCode);
   response.on("data", function(chunk) {
        body += chunk;
   });
   response.on("end", function(){
        // var profile = JSON.parse(body);
        // console.dir(profile);
   })
});


request.on("error", function(error){
    console.error(error.message);
})

最佳答案

readFile的回调采用两个参数:错误和数据。它一次读取所有数据。您尝试像 http.request 一样使用它,但它的工作方式非常不同。

const fs = require("fs");

fs.readFile("blog_data.json", 'utf8', (err, data) => {
   if (err) return console.error(err.message);
   console.dir(JSON.parse(data));
});

这不是 HTTP 请求。没有 statusCode 等。您只是在读取文件。

此外,node.js 还能够使用 require 将 JSON 作为对象导入:

console.dir(require("./blog_data.json"));

关于javascript - Node : TypeError: Cannot read property 'on' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592613/

相关文章:

java - Android内部存储: File is empty as soon as it has been read

node.js - 配置中间件 - Node Express

Node.js 在 typeorm 的实体中添加 created_at 和 updated_at

javascript - HTML 和 JQuery : how to retrieve data from previous form

javascript - 在 Angular 2 中通过子数组过滤对象列表

javascript - 未定义的 CSS 属性(上/左)

JSON 最佳实践 : GUIDS for contained data

javascript - 如何从 JSON 数据中给出的 URL 显示图像并播放音频?

node.js - 计算 Node js中的数据字节

javascript - Valums 文件 uploader - 仅允许单个文件上传