मैं एक एपीआई के खिलाफ एक वेबपैप विकसित करता हूं। चूंकि एपीआई मेरे स्थानीय सिस्टम पर नहीं चल रहा है, इसलिए मुझे अनुरोध प्रॉक्सी करना होगा ताकि मैं क्रॉस डोमेन समस्याओं में भाग न सकूं। क्या ऐसा करने का कोई आसान तरीका है, इसलिए मेरा index.html स्थानीय और अन्य सभी GET, POST, PUT से भेज देगा, अनुरोध अनुरोध xyz.net/apiEndPoint पर जाएं।प्रॉक्सी नोडजेस
संपादित करें:
यह मेरा पहला समाधान लेकिन फ्लॉप काम
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
});
});
यह सूचकांक, जे एस, सीएसएस फ़ाइलें की सेवा, लेकिन बाहरी api के लिए मार्ग बाकी न होगा। यह त्रुटि संदेश है जो मुझे मिला है:
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"}
आप सही हैं कि होस्ट 'http: //' से शुरू होता है। इसे ठीक करने से इसे हटा दें। लेकिन मुझे पता है कि मुझे खाली प्रतिक्रिया मिली है: HTTP/1.1 400 खराब अनुरोध एक्स-संचालित-द्वारा: एक्सप्रेस सर्वर: अपाचे-कोयोट/1.1 सामग्री-लंबाई: 0 दिनांक: सूर्य, 25 सितंबर 2011 18:06: 22 जीएमटी कनेक्शन: स्टार्टर्स के लिए –
@ एंड्रियासकोर्बर, मैं इस प्रश्न को संपादित करने या एक नया प्रश्न खोलने का सुझाव दूंगा। –
ठीक है मैंने एक नया सवाल पूछा है। http://stackoverflow.com/questions/7559862/proxy-with-nodejs-and-express –