使用fastify-multer上传图片出错

Error using fastify-multer to upload images

我正在尝试使用fastify-multer插件上传文件到服务器,我能够成功将图片上传到文件夹。 问题是我的应用程序崩溃了。 我使用了 fastify-cli 生成的结构,我 运行 它作为独立服务器,如 README.md here.

中所述

我把它写成一个 fastify 插件。

"use strict";

const fp = require("fastify-plugin");

module.exports = fp(function(fastify, opts, next) {
  fastify.decorate("uploadImage", function(request) {
    const path = require("path");
    const multer = require("fastify-multer");

    var storage = multer.diskStorage({
      destination: path.join(path.join(__dirname + "/uploads/")),
      filename: function(request, file, cb) {
        cb(null, file.originalname);
      }
    });

    var upload = multer({ storage }).single("myImage");
    upload(request, function(err) {
      if (err) {
        console.log(err);
      } else {
        console.log("Saved...");
        return { saved: true };
      }
    });
  });
  next();
});

这是我得到的错误:

您好,我们调查了您的问题。您以错误的方式使用了 fastify-multer。 调用 multer({ storage }).single("myImage") 你正在创建一个接受 3 个特定参数的 fastify 的 preHandler 钩子。您可以在 offical documentation. A simple working example could be the one you can see at fastify-multer:

上找到更多信息
const server = fastify()
// register fastify content parser
server.register(multer.contentParser)

server.route({
  method: 'POST',
  url: '/profile',
  preHandler: upload.single('avatar'),
  handler: function(request, reply) {
    // request.file is the `avatar` file
    // request.body will hold the text fields, if there were any
    reply.code(200).send('SUCCESS')
  }
})

如果您需要更多帮助,请在 github 上向我提供 repro 回购,我会尝试找出适合您的情况的最佳解决方案。

告诉我! :)