Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Express JS.all()方法:检测实际使用的动词_Javascript_Node.js_Rest_Request_Express - Fatal编程技术网

Javascript 使用Express JS.all()方法:检测实际使用的动词

Javascript 使用Express JS.all()方法:检测实际使用的动词,javascript,node.js,rest,request,express,Javascript,Node.js,Rest,Request,Express,我将创建一个/api端点,将请求和响应来回代理到遗留的RESTful api系统(用Ruby编写并托管在不同的域上) 这是一个中间过渡步骤,因此应该可以正常工作 因此,我看到了如何通过app.all()轻松实现这一点。但是由于API是RESTful的,我还必须维护用于请求的HTTP谓词——因此,我可以从req对象中检测它吗?如果没有,我当然可以为GET、PUT、POST、DELETE和OPTIONS订阅5个处理程序,但最好避免这种情况 另外,我应该如何处理请求主体(查询字符串和负载)? 我假设我

我将创建一个
/api
端点,将请求和响应来回代理到遗留的RESTful api系统(用Ruby编写并托管在不同的域上)

这是一个中间过渡步骤,因此应该可以正常工作

因此,我看到了如何通过
app.all()
轻松实现这一点。但是由于API是RESTful的,我还必须维护用于请求的HTTP谓词——因此,我可以从
req
对象中检测它吗?如果没有,我当然可以为GET、PUT、POST、DELETE和OPTIONS订阅5个处理程序,但最好避免这种情况

另外,我应该如何处理请求主体(查询字符串和负载)?
我假设我需要从解析的
req.query
手动重新创建查询字符串,并按原样将
req.body
传递给
request
,是否正确?

如果您只想传递请求并返回响应,那么您正在寻找一个代理


我建议退房。只需加载代理库,初始化一个代理,并代理所有请求。

我想你们都需要的是
req.method
。为了处理body,添加
express.bodyParser()
中间件。

看起来很有希望。但也有细微差别。远程端具有不同的结构(
nodeapp.com/api/v1/something?get=var
api.rubyapp.com/v1/something?get=var
相关)。我也不完全清楚查询字符串会发生什么情况(特别是当我混合使用GET和POST参数时)。关于如何处理GET和POST参数的任何建议?GET params是req.query。Post参数是req.body(如果使用中间件解析)。你看过expressjs指南了吗?我有bodyParser,但我关心的是(见罚单中):1)我是否应该从解析的查询中重新创建查询字符串并将其添加到URL,2)我是否应该将解析的正文传递给
request
?在这种情况下,express可能不是最好的解决方案,为什么不直接使用nodejs http.createServer并获取req对象中的所有普通数据呢?因为这个项目不仅仅针对API(否则为什么要有这样一个普通代理呢?:)