express. js изменить код состояния, если во время канала произошел сбой потока - PullRequest
0 голосов
/ 30 марта 2020

Это моя функция маршрута:

async function test (req, res) {
    try {
        await new Promise((resolve, reject) => {
            const someStream = getReadableStream();
            res.write('first row');
            someStream
                .on('error', (error) => {
                    console.error(`on error ${error}`);
                    return reject(error);
                })
                .on('end', () => {
                    return resolve();
                })
                .pipe(res);
        });
    } catch (error) {
        console.error(`catch ${error}`);
        res.status(500).end(error);
    }
}

Тем не менее, если во время конвейера происходит сбой потока (некоторые данные отправляются успешно, и выводятся обе ошибки консоли ошибок), код состояния ответа остается 200.

Как я могу переписать эту функцию, чтобы можно было выполнять потоковую передачу и изменять код состояния в соответствии с успешностью потока?

...