Desarrollo una aplicación web, en contra de una API. Como la API no se está ejecutando en mi sistema local, necesito enviar un proxy a la solicitud para que no se ejecute en problemas de dominio cruzado. ¿Hay una manera fácil de hacer esto para que mi index.html envíe desde local y todas las demás solicitudes GET, POST, PUT, DELETE vayan a xyz.net/apiEndPoint.Proxy con nodejs
Editar:
esta es la primera solución, pero no funcionó
var express = require('express'),
app = express.createServer(),
httpProxy = require('http-proxy');
app.use(express.bodyParser());
app.listen(process.env.PORT || 1235);
var proxy = new httpProxy.RoutingProxy();
app.get('/', function(req, res) {
res.sendfile(__dirname + '/index.html');
});
app.get('/js/*', function(req, res) {
res.sendfile(__dirname + req.url);
});
app.get('/css/*', function(req, res) {
res.sendfile(__dirname + req.url);
});
app.all('/*', function(req, res) {
proxy.proxyRequest(req, res, {
host: 'http://apiUrl',
port: 80
});
});
Servirá el índice, js, css, pero te ruta para el resto de la API externa. Este es el mensaje de error Tengo:
An error has occurred: {"stack":"Error: ENOTFOUND, Domain name not found\n at IOWatcher.callback (dns.js:74:15)","message":"ENOTFOUND, Domain name not found","errno":4,"code":"ENOTFOUND"}
Tienes razón el anfitrión comienza con 'http: //'. Al eliminar esto, corrígelo. Pero sé que tengo una respuesta vacía: HTTP/1.1 400 Bad Request X-Powered-By: Express servidor: Apache-Coyote/1.1 -longitud de contenido: 0 fecha: Dom, 25 Sep 2011 18:06: 22 GMT conexión: cerrar –
@ AndreasKöberle, para empezar, sugiero que se corrija esta pregunta o se abra una nueva pregunta. –
Ok, he hecho una nueva pregunta. http://stackoverflow.com/questions/7559862/proxy-with-nodejs-and-express –