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(否则为什么要有这样一个普通代理呢?:)