如何从Fastify POST请求正文中检索excel.xlsx数据



我是noode js和reactjs的新手,我正在尝试使用axios 从react js前端发送excel文件

import axios from 'axios';
export const uploadFile = async (file) => {
let formData = new FormData();
formData.append("file", file);
return await axios.post("/uploadFile", formData, {
headers: {
'Content-Type': 'multipart/form-data',
accept: "application/json",
},
});
};

如何在服务器端检索excel文件并验证excel文件中的数据

这是我的服务器端代码


async function uploadFile(fastify) {
fastify.register(require('fastify-multipart'));
fastify.post('/uploadFile', async (req, res) => {
// How to retrieve the excel file from the request body???

});
}
module.exports = uploadFile;

您有多个选项:

单个文件

const fs = require('fs')
const pump = require('pump')
const Fastify = require('fastify')
const fastifyMultipart = require('fastify-multipart')
const fastify = Fastify({ logger: true })
fastify.register(fastifyMultipart)
fastify.post('/', async function (req, reply) {
// return the first file submitted, regardless the field name
const data = await req.file()
// we must consume the file
// we use pump to manage correctly the stream and wait till the end of the pipe
// without using `pump` it would be necessary to manage the stream by ourself
const storedFile = fs.createWriteStream('./img-uploaded.png')
await pump(data.file, storedFile)
return { upload: 'completed' }
})

多个文件

fastify.post('/multiple', async function (req, reply) {
// get all the files in the request payload
// `const files` is an async generator
const files = await req.files()
for await (const part of files) { // iterate the async generator
req.log.info('storing %s', part.filename)
const storedFile = fs.createWriteStream(`./${part.filename}`)
await pump(part.file, storedFile)
}
return { upload: 'completed' }
})

最新更新