如何使用流优雅地处理错误?我的代码变得非常丑陋,在每.on('error', () => …)
后添加.pipe(…)
会让人感到痛苦。还有另一种方法吗?我读到有关NodeJS domain
的信息,但已弃用。
如果错误发生在流的中间位置,您将如何处理?在我的情况下,到那时,已经 some 的转换内容已经转移回用户了。
<form>
上传文本文件。简而言之:添加文件,提交表单,然后返回转换后的文件。
以下代码使用express处理HTTP请求,使用busboy处理文件上传:
export default Router()
.get('/', renderPage)
.post('/', (req, res, next) => {
const busboy = new Busboy({ headers: req.headers })
const parser = myParser()
const transformer = myTransformer()
busboy.on('file', (_fieldname, file, filename) => {
res.setHeader('Content-disposition', `attachment; filename=${filename}`)
file
.pipe(parser)
.on('error', err => errorHandler(err, req, res))
.pipe(transformer)
.on('error', err => errorHandler(err, req, res))
.pipe(res)
.on('error', err => errorHandler(err, req, res))
})
.on('error', err => errorHandler(err, req, res))
req.pipe(busboy)
.on('error', err => errorHandler(err, req, res))
})