Скачать файл в ответ на запрос POST на Express - PullRequest
0 голосов
/ 04 августа 2020

Я настраиваю веб-сайт для созданного мной настольного приложения. Веб-сайт предоставляет пользователям возможность также загрузить приложение после оплаты через Stripe. Чтобы выполнить правильную проверку, прежде чем разрешить загрузку приложения, я пытаюсь ответить на запрос POST загрузкой файла. Я не вижу ошибок, но браузер не загружает файл.

Сервер. js

app.post('/pay', jsonParser, async (req, res) => {
    // ...
    // Stripe payment verification
    // ...
    if (intent.status === 'succeeded') {
        console.log('downloading');
        res.setHeader( "Content-Disposition", `attachment; filename=${path.join(__dirname, '..', 'app', 'test.txt')}` );
        res.download(path.join(__dirname, '..', 'app', 'test.txt'), (error) => {
            if (error) throw error;
        });
    }
}

Расчет. js

fetch(
    '/pay',
    {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(data)
    }
  )
  .then(handleServerResponse)

1 Ответ

0 голосов
/ 05 августа 2020

Благодаря @Lawrence Cherone в комментариях, я буду создавать новый поток для запроса и загрузки полосы.

  1. Stripe завершает работу на стороне сервера, генерирует токен, сохраняет пользователя / токен / данные полосы в db
    • Электронное письмо будет отправлено пользователю с токеном
  2. Ответ отправляет токен для первого использования клиенту
  3. Клиент делает запрос GET to / download /: конечная точка токена и начинается загрузка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...