CodeGenieApp / CodeGenieApp/serverless-express

express.static doesnt work with ALB endpoint

Ouverte
#563 11 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
JavaScript
Étoiles
5.3k
Forks
676
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

When using express.static, the files within the static path do not load and the endpoint (Application Load Balancer) returns a 502.
`
app.use(express.static(path.resolve("./public")));
`

I was trying to add a robots.txt to the static path and let express.static handle the routing and response, but when I try to load the page, it responds with a 502 Bad Gateway. I'm 100% sure the file exists and the static path is correct, I've logged it. Also, when I try to load an asset that isnt in the static path, like /robo.txt, it responds with a 404, so it's recognizing something.

I've looked into what can cause a 502 from ALB, some docs on AWS says that either the response is larger than 1MB or the lambda timed out, which neither of these things is the case in my situation. My speculation is maybe the response from express.static isnt being handled correctly for an ALB in "vendia/serverless-express"? Possibly a content-type header issue? I've run the app locally via serverless offline and as a stand alone express server, in both cases, the /robots.txt loads fine, which is why I think it might have something to do with how ALB is integrated with the library.

Anyways, I worked around this issue by just explicitly setting the robots.txt path and importing the txt file
```
import txt from "../../robots.txt";

app.use("/robots.txt", (req, res, next) => {
res.set("Content-Type", "text/plain");
res.send(txt);
});
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Aucun fichier source ni aucun test n’est indiqué. Commencez par reproduire la requête express.static pour robots.txt via l’ALB, puis comparez-la aux cas Express autonome et serverless offline décrits dans l’issue. Le travail est terminé lorsque les fichiers statiques, y compris robots.txt, se chargent via l’ALB sans renvoyer 502, tandis que les fichiers manquants renvoient toujours 404.

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

Évaluation

Stack technique
aws, express, javascript
Domaine
api, backend, cloud
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
28/100

Recevez les nouvelles issues par e-mail

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