Я пытаюсь загрузить локальный 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);
}