【发布时间】:2016-07-18 08:03:30
【问题描述】:
我需要将任何以api 开头的请求转发到另一台服务器。我像这样使用express 和request:
var API_SERVER_HOST = "http://something.lala/output-api";
// call the packages we need
var express = require( 'express' );
var request = require( 'request' );
var port = process.env.PORT || 8080; // set our port
var app = express(); // define our app using express
// all of our routes will be prefixed with /api
app.use( express.static( 'webapp' ) ); // static content
app.use( '/api', function( req, res ){ // proxying
var url = API_SERVER_HOST + req.url;
console.log(" - " + req.url + " => " + url + " " + req.method);
req.pipe( request( url ) ).pipe( res );
} );
// launch
app.listen( port );
console.log( 'Magic happens on port ' + port );
到目前为止,一切都很好:GET, POST, PUT 工作就像一个魅力,但 DELETE 方法最终会得到一个错误的请求。日志是正确的:正确的 url 和删除方法。如果我将日志的 url 复制粘贴到 curl -X DELETE,它就像一个魅力。
请求管道没有处理 DELETE 方法吗?有什么想法吗?
【问题讨论】:
标签: node.js express proxy request