节点Js数据拆分和附加不正确

时间:2018-04-26 11:58:03

标签: html node.js

我有一个包含多行代码的文本文件,例如:

2;1;80;3.4;5%;12%;30%;43%;10%;
2;2;20;4;0%;9%;22%;30%;39%;
2;3;80;4;0%;9%;22%;30%;39%;
2;4;20;3.4;5%;12%;30%;43%;10%;
2;5;80;3.7;3%;7%;30%;37%;23%;
2;6;20;3.7;3%;7%;30%;37%;23%;

我尝试做的是在开头添加用户ID(用户输入)并在每行末尾追加用户从选择标签输入的内容(它只是一个数字级别)以及初始时间和用户提交表单的结束时间。所有这些都被正确附加,除了我得到这一行(最后一行除外)这样的事实:

11;2;1;80;4;2%;5%;38%;40%;15%;
2;2018-4-26;13:38:12;2018-4-26;13:38:25
11;2;2;20;4;0%;20%;5%;35%;40%;
1;2018-4-26;13:38:12;2018-4-26;13:38:25
11;2;3;80;4;0%;2%;37%;27%;35%;
5;2018-4-26;13:38:12;2018-4-26;13:38:25
11;2;4;20;4;0%;15%;20%;20%;45%;
6;2018-4-26;13:38:12;2018-4-26;13:38:25
11;2;5;80;3.6;5%;0%;25%;70%;0%;
3;2018-4-26;13:38:12;2018-4-26;13:38:25
11;2;6;20;3.6;5%;10%;25%;35%;25%;4;2018-4-26;13:38:12;2018-4-26;13:38:25

我的app.js:

app.post('/submit', function(req, res){

    const choices = [ req.body.rank1, req.body.rank2, req.body.rank3, req.body.rank4, req.body.rank5, req.body.rank6];
    var id = fs.readFileSync('temporary/userID.txt', 'utf8');
    var timeSTART = fs.readFileSync('temporary/timeSTART1.txt', 'utf8');

    var timeEND = req.body.created_at = new Date().toLocaleString('it-IT', {hour12: false, timezone: 'Europe/Rome'}).replace(/ /, ';');
    fs.appendFileSync('temporary/timeEND1.txt', timeEND + ';' , 'utf8');

    var ranks = fs.readFile('public/data/data1.txt','utf-8',(err, file) => fs.appendFileSync(
                        'output.txt',file.split('\n').map( (line) =>
                        id + line+ choices.shift() + ';' +timeSTART + timeEND).join('\n'),(err) => {}
                            ));
    fs.appendFileSync('output.txt', '\n\n' , 'utf8');

  res.sendfile('main2.html');
});

我希望输出看起来像输出的最后一行,但我把它拆分在其他行的中间。有人看到错误吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

只需删除join,您就不需要它。

您也不需要空错误功能。

所以只需改变一下:

var ranks = fs.readFile('public/data/data1.txt','utf-8',(err, file) => fs.appendFileSync(
                    'output.txt',file.split('\n').map( (line) =>
                    id + line+ choices.shift() + ';' +timeSTART + timeEND).join('\n'),(err) => {}
                        ));

到此:

var ranks = fs.readFile('public/data/data1.txt','utf-8',(err, file) => fs.appendFileSync(
                    'output.txt',file.split('\n').map( (line) =>
                    id + line+ choices.shift() + ';' +timeSTART + timeEND)
                        )); 

在此处播放此错误:https://repl.it/@rafaelcastrocouto/BriskAchingExecutables