我正在尝试使用 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/