Javascript Nodejs fs模块:如何读取文件和创建json对象?
我正在从文件中读取以下数据,现在我想从中创建json对象,如何使用nodejs fs模块创建该对象 app.jsJavascript 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
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);