Odeslat obrázek ze subdomény Express.js

Řekněme, že to mám pro místní testování.

sendImage: async function(req, res) {

    console.log(req.hostname);

    var filepath = path.join(__dirname, '../../img/uploads/' + req.params.year + '/' + req.params.month + '/' + req.params.id);
    //console.log(filepath);
    res.sendFile(filepath);
}

Tím se samozřejmě získá soubor na základě cesty k souboru. Nyní řekněme, že složka img je ve skutečnosti složka do subdomény a chtěl jsem poslat obrázek ze samotné subdomény, takže místo toho, aby API požadovalo hlavní web aka mysite.com, požadovalo by to z img.mysite. com. Mám to nastavené tak, že to jde z img={‘/api/date/img}

V podstatě potřebuji, aby žádosti o obrázky přešly z mysite.com/api/date/img na img.mysite.com/date/img

Existuje způsob, jak to provést přímo pomocí Express?

Odpověď

Ve chvíli, kdy jste uprostřed tohoto kódu, prohlížeč jej již má požádal o obrázek z expresního serveru. Je příliš pozdě na to, aby přestal vyžadovat tuto adresu URL.

Takže vaše možnosti:

  • Požádejte expresní server, aby prohlížeči poskytl požadovaný obrázek (což právě děláte)
  • Vydejte odpověď přesměrování, která prohlížeči sdělí, že obrázek není na adrese URL a že by měl přejít na jinou adresu URL (v subdoméně)
  • Udělejte krok zpět a změňte kód, který prohlížeči řekl, aby požádal o tuto adresu URL, aby místo toho vypsal adresu URL v subdoméně.