我正在构建休息终点服务器(nodejs和restify)。
我需要为两种类型的客户端请求支持相同的路由,一个用于GET,另一个用于POST。
目前我通过这种方式解决了这个问题:
server.get('/foo' , _ProcessRequest);
server.post('/foo' , _ProcessRequest);
function _ProcessRequest(req, res , next){...}
但我想知道是否有另一种方式来支持这种类型的请求
由于
答案 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