使用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 回购,我会尝试找出适合您的情况的最佳解决方案。
告诉我! :)
我正在尝试使用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 回购,我会尝试找出适合您的情况的最佳解决方案。
告诉我! :)