【问题标题】:FS overwrites file [duplicate]FS覆盖文件[重复]
【发布时间】:2017-12-25 21:54:36
【问题描述】:

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

我的代码:

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

+ ':' 用于分隔内容。

【问题讨论】:

    标签: javascript node.js fs


    【解决方案1】:

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

    【讨论】:

    • 这行得通。非常感谢。
    【解决方案2】:

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

    【讨论】:

    • 正如上面的评论,这也有效。谢谢!
    • 乐于助人! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2016-07-17
    • 2018-09-15
    • 2012-02-16
    • 2012-12-09
    相关资源
    最近更新 更多