如何将 express-fileupload 创建的缓冲区保存到文件中?

How can I save a buffer created by express-fileupload to a file?

我想 post 使用 express-fileupload 将此图像发送到我的 nodejs express 服务器,这是我的节点代码:

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!");
    });
});

我可以看到文件 posted 正在登录到控制台,名称、大小和一切都是正确的,但是当我尝试将此缓冲区写入文件时,写入的文件是一个 1kb 的文件而不是正确的。有任何想法吗?干杯。

我建议在写入输出文件时进行简单更改以使用 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!");
    });
});

否则数据会被转换成类似“[object Object]”的东西,这不是我们想要的!