我有一个包含多行代码的文本文件,例如:
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');
});
我希望输出看起来像输出的最后一行,但我把它拆分在其他行的中间。有人看到错误吗?提前谢谢!
答案 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