在学习方面,我需要使用fs.streams
router.post('/upload', (req, res, next) => {
req.pipe(fs.createWritableStream('files/file.png'))
.on('error', (err) => next(err))
.on('close', () => {
res.json({image: 'files/file.png'});
})
})
这是不可行的。所以有两个问题
更新:在所有相反操作的教程中 - 将文件从fs
和pipe
读取到res
到最终用户。
答案 0 :(得分:0)
您可以使用multer
const multer = require('multer');
const upload = multer({
dest: 'folderName'
});
router.post('/upload', upload.single('formField'), (req, res, next) => {
res.json({image: req.file.path});
})
将在此代码文件路径中发送。 如果你想自己发送文件,那么你应该写:
res.download(req.file.path);
而不是res.json({image: req.file.path})
。
我不知道res.download
如何正常工作。也许它需要文件的整个缓冲区并发送它。
multer的文档是here