Quelle que soit la bibliothèque que j'utilise pour le noeud, elles nécessitent toutes des URL absolues. Cela signifie que je dois soit construire un fetch curry, puis passer ce fetch à travers les chaînes de fonctions pour pouvoir faire une demande, OU j'ai besoin de faire une constante qui est définie après avoir déterminé si im en production ou en développement, puis mettez à jour cette URL chaque fois que mes environnements changent. Quoiqu'il en soit, pourquoi le noeud requiert-il le nom d'hôte pour les URL?Pourquoi dois-je inclure l'hôte avec des URL avec des requêtes Web de nœud?
Existe-t-il une manière plus transparente de faire des requêtes côté serveur n'importe où dans mon application (y compris dans les chaînes de fonctions profondes)?
Un exemple de code:
node index.js
index.js
let app = Express();
app.use('ace', (req, res) => foo());
app.use('somedata.json', (req, res) => res.status(200).send('{"hello": "world"}'));
foo.js
() => bar();
bar.js
() => bat();
bat.js
() => fetch('/somedata.json').then(console.log);
Qui diable downvotes sans commentaire? –
Je ne comprends pas le problème réel que vous rencontrez. Lorsque vous effectuez des requêtes HTTP côté serveur, il n'existe pas de «base HREF» par rapport à laquelle vous pouvez effectuer des requêtes, d'où la nécessité d'avoir des URL absolues. – robertklep
donc express.listen ne définit pas de globales pour les autres bibliothèques à rechercher par rapport aux URL de l'hôte. Cela répond à ma première question. Il ne répond pas à ma deuxième question "Existe-t-il une manière plus transparente de faire des requêtes côté serveur n'importe où dans mon application?" –