Невозможно опубликовать файл с использованием busboy на локальном сервере, и никакие события не запускаются - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь загрузить локальный png-файл, используя busboy для локального сервера через порт 8000. Код server.js включен, а затем request.js запущен.Проблема в том, что все события, кроме on («финиш»), никогда не запускаются.Похоже, что readStream для файла png никогда не передается busboy и, следовательно, он не может вызвать какое-либо событие. Ниже приведены точные приложенные коды.Я использую Nodejs.

Код для Server.js

const fs = require('fs');
var Busboy = require('busboy');
var request=require('request');
http.createServer(function(req, res) {
  if (req.method === 'POST') {

    var busboy = new Busboy({ headers: req.headers });
    req.pipe(busboy);

    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
    });

    busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) {
             });

    busboy.on('finish', function() {
             });
  } 
else if (req.method === 'GET') {
    res.writeHead(200, { Connection: 'close' });
    res.end('<html><head></head><body>\
               <form method="POST" enctype="multipart/form-data">\
                <input type="text" name="textfield"><br />\
                <input type="file" name="filefield"><br />\
                <input type="submit">\
              </form>\
            </body></html>');
  }
}).listen(8000, function() {
  console.log('Listening for requests');
});

Код для request.js

  var create_body = {
textfield: "HEYA",
filename: (__dirname + '/pic1.png'),
filefield: fs.createReadStream(__dirname + '/pic1.png')
}
var ask = {
url: "http://localhost:8000/",
method: "POST",
headers: {
    'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryzOZ8O14NJBAIsF0V'
},
body: JSON.stringify(create_body),
};

function callback(error, response, body) {
if (error)console.log(error);
request(ask, callback);
}
...