FS覆盖文件

FS overwrites file

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

我的代码:

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);
      };
    });
  });

+ ':' 是用来分隔东西的。

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

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);
        };
      });
    });