无法使用 multer 接收文件 (node.js-nuxt3)
can't receive file with multer (node.js-nuxt3)
我将 nuxt3/node.js 与 multer 一起使用,
我无法在我的服务器中存储或接收文件,而且我在 root 中看不到 req.file,它一直是空的。
服务器代码:
const upload = multer({ dest: './uploads/' })
router.post('/sendNewQuestionCSV', upload.single('csv'),adminControler.sendNewQuestionCSV.bind(adminControler))
我的前端代码与 nuxt3:
async function fileSelected(e) {
let formData = new FormData();
formData.append("csv", e.target.files[0]);
const res = await $postFetch("/admin/sendNewQuestionCSV", formData, {
"Content-Type": "multipart/form-data",
});
}
注意:$postFetch 是我自己使用的一种方法,第三个参数是“headers”。它是一个 nuxt3 插件
此插件代码:
export default defineNuxtPlugin(async () => {
return {
provide: {
postFetch: async (url, body,headers={}) => {
let token = useCookie('token');
return await $fetch(url, {
method: 'post',
body: { token: token.value, ...body },
baseURL: useRuntimeConfig().API_BASE,
...headers
}).catch((error) => error.data)
}
}
}
})
尝试使用 .append 添加 token
:
postFetch: async (url, body,headers={}) => {
let token = useCookie('token');
body.append('token', token.value);
return await $fetch(url, {
method: 'post',
body: body,
baseURL: useRuntimeConfig().API_BASE
}).catch((error) => error.data)
}
编辑
也尝试删除 headers
我将 nuxt3/node.js 与 multer 一起使用, 我无法在我的服务器中存储或接收文件,而且我在 root 中看不到 req.file,它一直是空的。 服务器代码:
const upload = multer({ dest: './uploads/' })
router.post('/sendNewQuestionCSV', upload.single('csv'),adminControler.sendNewQuestionCSV.bind(adminControler))
我的前端代码与 nuxt3:
async function fileSelected(e) {
let formData = new FormData();
formData.append("csv", e.target.files[0]);
const res = await $postFetch("/admin/sendNewQuestionCSV", formData, {
"Content-Type": "multipart/form-data",
});
}
注意:$postFetch 是我自己使用的一种方法,第三个参数是“headers”。它是一个 nuxt3 插件
此插件代码:
export default defineNuxtPlugin(async () => {
return {
provide: {
postFetch: async (url, body,headers={}) => {
let token = useCookie('token');
return await $fetch(url, {
method: 'post',
body: { token: token.value, ...body },
baseURL: useRuntimeConfig().API_BASE,
...headers
}).catch((error) => error.data)
}
}
}
})
尝试使用 .append 添加 token
:
postFetch: async (url, body,headers={}) => {
let token = useCookie('token');
body.append('token', token.value);
return await $fetch(url, {
method: 'post',
body: body,
baseURL: useRuntimeConfig().API_BASE
}).catch((error) => error.data)
}
编辑
也尝试删除 headers