Javascript Nodejs fs模块:如何读取文件和创建json对象?

Javascript Nodejs fs模块:如何读取文件和创建json对象?,javascript,json,node.js,Javascript,Json,Node.js,我正在从文件中读取以下数据,现在我想从中创建json对象,如何使用nodejs fs模块创建该对象 app.js var path = "./ditLogs/" + file; fs.readFile(path, function(err, data) { console.log('reading file data', data.toString()); }); 下面是我需要为其创建json

我正在从文件中读取以下数据,现在我想从中创建json对象,如何使用nodejs fs模块创建该对象

app.js

var path = "./ditLogs/" + file;
                fs.readFile(path, function(err, data) {
                   console.log('reading file data', data.toString());
                });
下面是我需要为其创建json的文件中的数据

file.txt

{"event":"test data"}
{"event":"test data"}
{"event":"test data"}

简单地使用逐行读取包,减少了麻烦,对读取过程有了更多的控制(它可以暂停、恢复读取、按需关闭文件描述符、跳过N行),代码更少

1) 安装:

2) 实施

var lineByLine = require('line-by-line'),
    _ = require('lodash'),
    path = require('path');


var lines = [];
var filePath = path.join(__dirname, "ditLogs", file);
var fileReader = new lineByLine(filePath);

fileReader.on('line', function(line) {
  line = JSON.parse(line);
  if(_.isPlainObject(line) && !_.isEmpty(line)) {
    lines.push(line);
  }

  // optional
  doSomethingWithLine(line);
});

function doSomethingWithLine(line) {
  // for example You can save to db or send to somewhere using request libary or just show in console
}

fileReader.on('error', function(error) {
  console.error(error);
  process.exit(-1);
});

fileReader.on('end', function() {
  doSomethingAfterParsingAllLines(lines);
});

function doSomethingAfterParsingAllLines(records) {
  // do something with data
}

您可以使用此示例函数:

function(strFromFile) {
  try {
    return JSON.parse(strFromFile);
  } catch(e) {
    return {};
  }
};

FS模块

在NodeJS中开发时,有时需要访问计算机的文件系统。FS模块是一个辅助此过程的实用程序

FS包含一些函数,这些函数允许通过围绕API的包装器在文件系统上执行不同的活动

这应该包括/需要/导入到需要与文件系统API交互的任何JS中

var fs = require("fs");
以下是可在此API上使用的不同方法,这些方法都是异步的:

fs.readFile{fs.readFile('input.txt',函数(err,data)

fs.writeFile

fs.writeFile('input.txt', 'Simply Easy Learning!',  function(err) {
   if (err) {
      return console.error(err);
   }

   console.log("Data written successfully!");
   console.log("Let's read newly written data");
   fs.readFile('input.txt', function (err, data) {
      if (err) {
         return console.error(err);
      }
      console.log("Asynchronous read: " + data.toString());
   });
});
打开

fs.stat(提供有关文件的信息)例如

fs.read(与readFile类似,不应成为读取文件的首选)

财政司司长

// Close the opened file.
fs.close(fd, function(err){
  if (err){
     console.log(err);
  }
     console.log("File closed successfully.");
});
ftruncate(截断打开的文件)

取消链接(删除打开的文件)

fs.mkdir(创建新目录)

fs.readdir(读取目录)

fs.rmdir(删除目录)

同步功能:

readFileSync

// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());
writeFileSync

// Synchronous write
var data = fs.writeFileSync('input.txt', 'asdasdasd');

.split(“\n”).map(a=>JSON.parse(a))
?某个聪明人在没有说明原因的情况下否决了我的答案。不公平!(:你能详细说明一下你答案中的新内容吗?还有其他现有答案可以更好地解释同样的问题。
fs.stat('input.txt', function (err, stats) {
   if (err) {
       return console.error(err);
   }
   console.log(stats);
   console.log("Got file info successfully!");

   // Check file type
   console.log("isFile ? " + stats.isFile());
   console.log("isDirectory ? " + stats.isDirectory());   
});
// Close the opened file.
fs.close(fd, function(err){
  if (err){
     console.log(err);
  }
     console.log("File closed successfully.");
});
fs.unlink('input.txt', function(err) {
   if (err) {
      return console.error(err);
   }
   console.log("File deleted successfully!");
});
fs.mkdir('/tmp/test',function(err){
   if (err) {
      return console.error(err);
   }
   console.log("Directory created successfully!");
});
fs.readdir("/tmp/",function(err, files){
   if (err) {
      return console.error(err);
   }
   files.forEach( function (file){
      console.log( file );
   });
});
fs.rmdir("/tmp/test",function(err){
   if (err) {
      return console.error(err);
   }
   console.log("Going to read directory /tmp");

   fs.readdir("/tmp/",function(err, files){
      if (err) {
         return console.error(err);
      }
      files.forEach( function (file){
         console.log( file );
      });
   });
});
// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());
// Synchronous write
var data = fs.writeFileSync('input.txt', 'asdasdasd');
'use strict';
const fs = require('fs');
let rawdata = fs.readFileSync('student.json');  
let student = JSON.parse(rawdata);  
console.log(student);