如何从 Fastify POST 请求正文中检索 excel .xlsx 数据?
How to retrieve excel .xlsx data from Fastify POST request body?
我是 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' }
})
我是 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' }
})