Tôi phát triển một ứng dụng web, chống lại api. Khi api không chạy trên hệ thống cục bộ của tôi, tôi cần ủy quyền yêu cầu để không chạy các vấn đề về miền chéo. Có một cách dễ dàng để làm điều này vì vậy index.html của tôi sẽ gửi từ địa phương và tất cả các yêu cầu GET, POST, PUT, DELETE khác đi tới xyz.net/apiEndPoint.Proxy với nodejs
Edit:
đây là giải pháp đầu tiên của tôi, nhưng didnt làm việc
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
});
});
Nó sẽ phục vụ chỉ mục, js, css file nhưng không lộ phần còn lại cho các api bên ngoài. Đây là thông báo lỗi tôi có:
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"}
Bạn đúng là máy chủ bắt đầu bằng 'http: //'. Việc xóa này sẽ khắc phục nó. Nhưng biết tôi đã nhận được phản hồi trống: Yêu cầu HTTP HTTP/1.1 400 X-Powered-By: Express máy chủ: Apache-Coyote/1.1 nội dung dài: 0 ngày: Sun, 25 Sep 2011 18:06: 22 GMT kết nối: đóng –
@ AndreasKöberle, để bắt đầu, tôi khuyên bạn nên chỉnh sửa câu hỏi này hoặc mở một câu hỏi mới. –
Ok tôi đã hỏi một câu hỏi mới. http://stackoverflow.com/questions/7559862/proxy-with-nodejs-and-express –