сервер загрузки файлов nodeJS не меняет строки - PullRequest
2 голосов
/ 04 мая 2019

У меня есть очень простой скрипт загрузки файлов, в котором я хочу добавить некоторые журналы на мой сервер nodejs.Он успешно получает данные файла, но не может изменить строку на стороне сервера.

На данный момент это мой сценарий:

var http = require('http');
var fs = require('fs');

http.createServer(function (req, res) {
        if(req.method== 'POST'){
                console.log('bhke sto POST');
                if (req.url == '/logs/upload/Accelerometer.csv') {
                        console.log("Calledeixa to swsto path");

                        var body="";
                        req.on('data', data=>{

                        body+=data;
                        console.log("partial data ="+data);

                        fs.appendFile('Accelerometer.csv', body, function (err) {
                                console.log('Saved!');
                        });


                        });

                        console.log(body);

                        req.on('end', function(){
                        res.writeHead(200, {'Content-Type' : 'text/html'})
                        res.end('Accelerometer.csv was updated successfully\n');
                        });

                } else {
                        res.writeHead(200, {'Content-Type': 'text/html'});
                        res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
                        res.write('<input type="file" name="filetoupload"><br>');
                        res.write('<input type="submit">');
                        res.write('</form>');
                        return res.end();
                }
        }
}).listen(8080);

Я отлаживаю его с помощью curl и случайного файла,Я использую команду: curl -X POST -d @filename 127.0.0.1:8080/logs/upload/Accelerometer.csv

И содержание файла:

0,0,0

1,2,3

2,4,7

Но на стороне сервера я получаю это:

enter image description here

Как создать файл на стороне сервераиметь тот же формат, что и оригинал?

1 Ответ

1 голос
/ 04 мая 2019

Это просто потому, что curl удаляет linebreaks из данных, опубликованных с опцией -d.Вместо этого используйте опции --data-binary.

Вот еще ТАК ответ об отправке newline с curl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...