node中间层实现文件上传功能

2020-06-17 06:39:53易采站长站整理

var multipartMiddleware = multipart()

router.post('/upload', multipartMiddleware, function (req, res) {
// console.log(req.body, req.files);

const { path: filePath, originalFilename } = req.files.file
const newPath = path.join(path.dirname(filePath), originalFilename)

fs.rename(filePath, newPath, function (err) {
if (err) {
return;
}
else {
const file = fs.createReadStream(newPath)
const form = new FormData()
form.append('file', file)

fetch('http://localhost:8080/upload', {
method: "POST",
body: form
})
}
})
res.json({})
});

module.exports = router;

注意:

node无法直接解析上传文件,需要引入npm包connect-multiparty中间件,或者引入npm包multiparty
node拿到文件,需要使用fs.createReadStream转成可读流
node环境没有formData对象,需要引入npm包form-data
fetch请求提交formData数据,不能设置Comtemt-Type

最后给大家附上完整的代码: node中间层实现文件上传

总结

以上所述是小编给大家介绍的node中间层实现文件上传功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!