Ошибка при использовании fastify-multer для загрузки изображений - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь использовать плагин fastify-multer для загрузки файлов на сервер, и я могу успешно загрузить изображения в папку.Проблема в том, что мое приложение вылетает.Я использовал структуру, сгенерированную fastify-cli, и использую ее как автономный сервер, как указано в README.md здесь .

Я пишу его как плагин 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();
});

И вот ошибка, которую я получаю: enter image description here

1 Ответ

0 голосов
/ 29 июня 2019

Привет заглянул в вашу проблему.Вы используете fastify-multer неверным способом.Вызывая multer({ storage }).single("myImage"), вы создаете ловушку preHandler для fastify, которая принимает 3 определенных параметра.Вы можете найти больше в официальной документации .Простым рабочим примером может быть тот, который вы можете увидеть на 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, и я постараюсьвыясните, какое решение для вашего дела лучше всего.

Дайте мне знать!:)

...