Making onProxyRes function asynchronous friendly

Ouverte
#1,689 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
express, javascript, node.js
Domaine
api, backend

Piste de recherche

Commencez par retracer comment le callback onProxyRes est appelé et comment sa réponse est transmise ; l’issue fournit un exemple Express exécutable utilisant une fonction asynchrone avec await de trois secondes. Reproduisez l’exemple et vérifiez qu’un onProxyRes asynchrone peut se terminer avant que res.write() et res.end() soient utilisés pour produire la réponse.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

I would like to be able to set response after a specific time passed as my code below, but it's not possible.

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

const asyncFunc = () => {
  return new Promise((resolve) => {
    setTimeout(() => resolve("Hello World!"), 3000)
  })
}


const onProxyRes = async function  (proxyRes, req, res) {


  const result = await asyncFunc()

  res.write(result);
  res.end();

};


const exampleProxy = createProxyMiddleware({
  target: 'https://example.com',
  changeOrigin: true,
  on: { proxyRes: onProxyRes }
});
app.use('/', exampleProxy);



app.listen(3003)

But if I remove const result = await asyncFunc() part, I can set response anything I want inside of res.write();.

Langage dominant
JavaScript
Étoiles
14.1k
Forks
2k
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de http-party/node-http-proxy

Toutes les issues de http-party/node-http-proxy

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.