У меня есть камера Axis M1011, которая настроена для отправки серии jpeg-изображений, пока она обнаруживает движение, к службе (используя HTTP POST). Я создаю службу, используя node.js.Получение запроса POST с node.js
Я получаю запросы POST с их заголовками, но у меня возникают проблемы с сохранением данных в теле запроса. Вот код:
function addEvent(req, res)
{
var buffer = '';
console.log(req.headers);
req.on("data", function(chunk)
{
console.log("chunk received");
buffer += chunk;
});
req.on("end", function()
{
console.log("saving file");
fs.writeFile("./tmp/"+ new Date().getTime()+".jpg", buffer, function(error)
{
if(error)
{
console.log(error);
}
else
{
console.log("saved");
res.send("OK");
res.end();
}
});
});
}
На консоли я получаю этот вид вывода. Конечно, содержание длина отличается от файла к файлу:
{ host: '192.168.0.100:8888',
'content-type': 'image/jpeg',
'content-disposition': 'attachment; filename="file13-07-19_20-49-44-91"',
'content-length': '18978' }
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
chunk received
saving file
saved
Проблема заключается в том, что я получаю один такой же, испорчен файл в папке TMP, размер которого не составляет около 33KB, независимо от того, насколько велика изображение. Что я делаю неправильно с получением этих файлов?
Вы знаете, как исправить эту проблему? – bubakazouba
Если честно, нет. Я использовал node.js после, и я думаю, что я действительно сделал это, чтобы работать, но в этом конкретном случае я понятия не имею, что случилось. Возможно, один существующий ответ имеет смысл, но я не работал. –