推荐答案
在 Fastify 中处理文件上传可以通过使用 fastify-multipart
插件来实现。以下是一个简单的示例代码:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- --- -- -- ----------------- -- ----------------------------------------------- -- --------- ----------------------- ----- --------- ------ -- - ----- ---- - ----- --------------- -- --------- ----- -------- - ----------------------------- ----- --------------- -------------------------------- ------------ -------- --------- --------- ------------- --- --- -- ----- -------------------- ----- -- - -- ----- - ----------------------- ---------------- - ------------------------- ----------------------------------- ---
本题详细解读
1. 安装 fastify-multipart
插件
首先,你需要安装 fastify-multipart
插件:
npm install fastify-multipart
2. 注册插件
在 Fastify 应用中注册 fastify-multipart
插件:
fastify.register(require('fastify-multipart'));
3. 处理文件上传
在路由处理函数中,你可以通过 request.file()
方法来获取上传的文件。request.file()
返回一个包含文件信息的对象,其中包括文件名、文件流等。
const data = await request.file();
4. 保存文件
你可以使用 pump
函数将文件流写入到指定的文件路径中。pump
是一个常用的流处理工具,可以确保文件流正确地写入目标文件。
const filePath = `./uploads/${data.filename}`; await pump(data.file, fs.createWriteStream(filePath));
5. 返回响应
最后,你可以返回一个响应给客户端,告知文件上传成功。
reply.send({ message: '文件上传成功', filename: data.filename });
6. 启动服务器
确保服务器在指定的端口上监听请求。
fastify.listen(3000, (err) => { if (err) { fastify.log.error(err); process.exit(1); } fastify.log.info(`服务器正在监听 ${fastify.server.address().port}`); });
通过以上步骤,你可以在 Fastify 中轻松处理文件上传。