supertest
расширяет superagent
функциональностью тестирования и работает аналогичным образом.request.post('/upload')
создает экземпляр запроса и является цепным.Методы экземпляра возвращают сам экземпляр для объединения в цепочку:
const requestInstance = request.post('/upload');
requestInstance === requestInstance.attach('file', ...);
supertest
и superagent
, тогда можно использовать цепочку результата как обещание для правильного потока управления, когда он используется с async..await
:
try {
const files = await readdir(path.resolve(__dirname, '/path/to');
let requestInstance = request.post('/upload');
for (const file of files) {
// no need to reassign requestInstance because it's same instance
// requestInstance = requestInstance.attach('file', file);
requestInstance.attach('file', file);
}
const response = await requestInstance;
} catch (err) {
console.error(err);
}