首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js在.txt文件中写入一行

Node.js在.txt文件中写入一行
EN

Stack Overflow用户
提问于 2015-10-29 23:44:56
回答 3查看 144.5K关注 0票数 73

我想创建一个简单的日志系统,它使用Node.js将上一行之前的一行打印到txt文件中,但我不知道Node.js的文件系统是如何工作的。有人能解释一下吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-30 00:05:15

将数据插入到文本文件的中间并不是一项简单的任务。如果可能,您应该将其附加到文件的末尾。

将数据附加到某个文本文件最简单的方法是使用fs module的内置fs.appendFile(filename, data[, options], callback) function

代码语言:javascript
复制
var fs = require('fs')
fs.appendFile('log.txt', 'new data', function (err) {
  if (err) {
    // append failed
  } else {
    // done
  }
})

但是,如果您想多次将数据写入日志文件,那么最好使用fs.createWriteStream(path[, options]) function

代码语言:javascript
复制
var fs = require('fs')
var logger = fs.createWriteStream('log.txt', {
  flags: 'a' // 'a' means appending (old data will be preserved)
})

logger.write('some data') // append string to your file
logger.write('more data') // again
logger.write('and more') // again

节点将在您每次调用.write时将新数据追加到文件中,直到您关闭应用程序或手动关闭调用.end的流

代码语言:javascript
复制
logger.end() // close string
票数 171
EN

Stack Overflow用户

发布于 2015-10-30 00:06:39

只需使用fs模块和类似以下内容:

代码语言:javascript
复制
fs.appendFile('server.log', 'string to append', function (err) {
   if (err) return console.log(err);
   console.log('Appended!');
});
票数 4
EN

Stack Overflow用户

发布于 2018-11-15 18:53:16

我创建了一个日志文件,使用"Winston“记录器将数据打印到文本文件中。源代码在下面,

代码语言:javascript
复制
const { createLogger, format, transports } = require('winston');
var fs = require('fs')
var logger = fs.createWriteStream('Data Log.txt', {
  flags: 'a' 
})
const os = require('os');
var sleep = require('system-sleep');
var endOfLine = require('os').EOL;
var t = '             ';
var s = '         ';
var q = '               ';
var array1=[];
var array2=[];
var array3=[];
var array4=[];
              
array1[0]  =  78;
array1[1]  =  56;
array1[2]  =  24;
array1[3]  =  34;
                  
for (var n=0;n<4;n++)
{
  array2[n]=array1[n].toString();
}
                 
for (var k=0;k<4;k++)
{
  array3[k]=Buffer.from('                    ');
}

for (var a=0;a<4;a++)  
{
  array4[a]=Buffer.from(array2[a]);
}

for (m=0;m<4;m++)
{
  array4[m].copy(array3[m],0);
}

logger.write('Date'+q);
logger.write('Time'+(q+'  '))
logger.write('Data 01'+t);
logger.write('Data 02'+t); 
logger.write('Data 03'+t);
logger.write('Data 04'+t)

logger.write(endOfLine);
logger.write(endOfLine);

function mydata()      //user defined function
{
  logger.write(datechar+s);
  logger.write(timechar+s);
  for ( n = 0; n < 4; n++) 
  {
   logger.write(array3[n]);
  }
  logger.write(endOfLine); 
}

var now = new Date();
var dateFormat = require('dateformat');
var date = dateFormat(now,"isoDate");
var time = dateFormat(now, "h:MM:ss TT ");
var datechar = date.toString();
var timechar = time.toString();
mydata();
sleep(5*1000);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33418777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档