Je construis un site web simple utilisant npm pour le développement, et il est hébergé chez un fournisseur avec un support php.Demande de piping Express.js au serveur intégré php sur localhost résultats dans ECONNREFUSED
La seule fonctionnalité qui utilise php est le formulaire de contact pour envoyer un courriel. le reste est simple html et javascript.
J'utilise un serveur simple php dans le développement a commencé avec php -S localhost:8000
pour tester un script php simple e-mail et de nouveau en dev je reverse proxy pour les demandes email.php
à ce serveur php localement.
application Node est sur le port 3000 et le serveur php est sur le port 8000. Le problème est que je reçois connexion refusé erreur avec la configuration du serveur express suivant lorsque la demande passe par localhost: 3000/email.php:
#!/usr/bin/env node
var express = require('express');
var app = express(),
request= require('request'),
port = +(process.env.PORT || 3000);
app.set('case sensitive routing', false);
app.post('/email.php', function(req, res){
req.pipe(request({
url: 'http://localhost:8000/email.php',
qs: req.query,
method: req.method
}, function(error){
if (error.code === 'ECONNREFUSED'){
console.error('Refused connection');
} else {
throw error;
}
})).pipe(res);
});
// other request handlers here
app.listen(port, function() {
console.log('listening');
});
Le serveur PHP est définitivement opérationnel et sert toutes les pages sur le port 8000, que je peux parcourir avec le navigateur. Je l'ai testé avec curl et il semble gérer la requête très bien lorsqu'il est posté directement sur localhost: 8000 en utilisant curl.
Je ne sais pas pourquoi je reçois cette erreur, me grattant la tête, je ne vois pas pourquoi.
L'aide est très appréciée.
Votre serveur express s'exécute-t-il sur le même serveur? –