FS覆盖文件

时间:2017-07-20 09:26:52

标签: javascript node.js fs

我创建了一个联系页面,其中的帖子数据将被写入文件中,但当另一个人在联系页面上写入时,旧数据会被新文件覆盖(意味着旧数据丢失,我可以不帮助这个人)我该如何解决这个问题?

我的代码:

app.post('/process', function(req, res, next){
  console.log('Form : ' + req.query.form);
  console.log('CSRF token : ' + req.body._csrf);
  console.log('Email : ' + req.body.email);
  console.log('Question : ' + req.body.ques);
  res.redirect(303, '/thankyou');
    fs.writeFile('./contactdata/contactdata.txt',
    req.query.form + ':' + req.body._csrf + ':' + req.body.email + ':' + req.body.ques, function(err){
      if(err){
        return console.error(err);
      };
    });
  });

+':'是分开的东西。

2 个答案:

答案 0 :(得分:1)

不使用fs.writeFile,而是使用fs.appendFile将新数据添加到特定文件的末尾。

答案 1 :(得分:0)

fs.appendFile是您需要使用的:

  • 它将数据附加到EOF
  • 的现有文件
  • 如果文件不存在则创建

app.post('/process', function(req, res, next){
    console.log('Form : ' + req.query.form);
    console.log('CSRF token : ' + req.body._csrf);
    console.log('Email : ' + req.body.email);
    console.log('Question : ' + req.body.ques);
    res.redirect(303, '/thankyou');
      fs.appendFile('./contactdata/contactdata.txt',
      req.query.form + ':' + req.body._csrf + ':' + req.body.email + ':' + req.body.ques, function(err){
        if(err){
          return console.error(err);
        };
      });
    });