我正在尝试使用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();
});
答案 0 :(得分:0)
您好,您调查了您的问题。您以错误的方式使用了fastify-multer。
调用multer({ storage }).single("myImage")
将创建一个fastify的preHandler挂钩,该挂钩接受3个特定参数。您可以在offical documentation上找到更多信息。您可以在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 repo,我将尝试找出最适合您的情况的解决方案。
让我知道! :)