Как я могу сохранить буфер, созданный с помощью команды express-fileupload, в файл? - PullRequest
1 голос
/ 05 ноября 2019

Я хочу опубликовать это изображение на моем экспресс-сервере nodejs, используя express-fileupload, это мой код узла:

app.post("/files", function(req, res) {
    console.log(req.files.brandLogo)

    const data = {
            fieldname: 'file',
            originalname: req.files.brandLogo.name,
            encoding: req.files.brandLogo.encoding,
            mimetype: req.files.brandLogo.mimetype,
            buffer: req.files.brandLogo.data,
            size: req.files.brandLogo.size
    };

    fs.writeFile("file", data, function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("The file was saved!");
    });
});

Я вижу, что опубликованный файл регистрируется в консоли, имя, размер,и все правильно, но когда я пытаюсь записать этот буфер в файл, записанный файл является файлом размером 1 КБ, а не правильным. Есть идеи? Приветствия.

1 Ответ

0 голосов
/ 05 ноября 2019

Я бы предложил сделать простое изменение для использования JSON.stringify при записи в выходной файл, например:

app.post("/files", function(req, res) {
    console.log(req.files.brandLogo)

    const data = {
            fieldname: 'file',
            originalname: req.files.brandLogo.name,
            encoding: req.files.brandLogo.encoding,
            mimetype: req.files.brandLogo.mimetype,
            buffer: req.files.brandLogo.data,
            size: req.files.brandLogo.size
    };

    // Use JSON.stringify to serialize here.
    fs.writeFile("file", JSON.stringify(data, null, 4), function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("The file was saved!");
    });
});

В противном случае данные преобразуются во что-то вроде «[объект объекта]», которыйэто не то, что мы хотим!

...