在同一条路线上进行GET和POST

时间:2018-01-17 18:15:04

标签: node.js post get request restify

我正在构建休息终点服务器(nodejs和restify)。

我需要为两种类型的客户端请求支持相同的路由,一个用于GET,另一个用于POST。

目前我通过这种方式解决了这个问题:

server.get('/foo' , _ProcessRequest);
server.post('/foo' , _ProcessRequest);

function _ProcessRequest(req, res , next){...}

但我想知道是否有另一种方式来支持这种类型的请求

由于

1 个答案:

答案 0 :(得分:2)

就个人而言,如果没有使用路由器中间件来抽象.get().post()调用,我发现路由的结构是最干净的。由于您的问题在其他方面要求执行此操作,因此您可以使用其他方式构建Route处理程序以实现相同的功能。

一种方法是构建您的路由将使用router.route(),然后为每个HTTP方法指定一个处理程序。

server.route('/foo')
  .get(_ProcessRequest)
  .post(_ProcessRequest)

或者,您可以修改_ProcessRequest,使条件使用req.method检查next()更多中间件样式处理程序,以便将请求短路到/foo,而不是server.use('/foo', _ProcessRequest) function _ProcessRequest(req, res, next) { // If not either a GET or a POST then continue to next handler if (req.method !== 'GET' && req.method !== 'POST') { return next() } // Request is a HTTP GET or POST so perform logic } 。 ta GET或POST。

Privacy - Location When In Use Usage Description