Javascript 将/.json添加到express routes末尾的最佳方式是什么?
我正在通过DJANGO API移植到Node.js,并且需要在路由末尾支持.json 示例:GET to/users/:id/.json将返回代表用户的json对象 问题是我有一些带有自定义行为的路由,所以我需要它返回与我运行GET to/users/:id时相同的逻辑 我可以很容易地复制原始路由并向其中添加/.json,但出于明显的原因,这不是我想要的方式Javascript 将/.json添加到express routes末尾的最佳方式是什么?,javascript,node.js,express,Javascript,Node.js,Express,我正在通过DJANGO API移植到Node.js,并且需要在路由末尾支持.json 示例:GET to/users/:id/.json将返回代表用户的json对象 问题是我有一些带有自定义行为的路由,所以我需要它返回与我运行GET to/users/:id时相同的逻辑 我可以很容易地复制原始路由并向其中添加/.json,但出于明显的原因,这不是我想要的方式 我可以使用什么方法将.json处理程序“自动”固定到路由的末尾,并让它使用不同的自定义路由?一个好方法是使用查询参数。您可以按照通常的方式
我可以使用什么方法将.json处理程序“自动”固定到路由的末尾,并让它使用不同的自定义路由?一个好方法是使用查询参数。您可以按照通常的方式定义路线:
/users/:id
然后有一些逻辑(比如在中间件中)来查找类型
查询参数
if(req.query.type) {
if(req.query.type === 'json') {
// send json
}
}
客户端将点击的完整路径是:/users/12345?type=json
参考资料:一个很好的方法是使用查询参数。您可以按照通常的方式定义路线:
/users/:id
然后有一些逻辑(比如在中间件中)来查找类型
查询参数
if(req.query.type) {
if(req.query.type === 'json') {
// send json
}
}
客户端将点击的完整路径是:/users/12345?type=json
参考:您不能将其作为可选的路由参数,并在控制器中执行逻辑检查(是否使用自定义行为)?如果添加查询参数会怎么样
?type=json
在路由器之前添加一个查找.json的中间件,如果找到,则在req上设置一个属性并将其从url中删除,允许路由像往常一样处理它。但最好只使用适当的标题或查询参数。要继续@stUrb comment,请看以下问题:我不知道您可以在这样的路由中使用*,它应该满足我的需要。将其作为答案发布,我将接受。您不能将其作为可选路由参数,并在控制器中执行逻辑检查(是否使用自定义行为)吗?如果您添加一个查询参数怎么办?type=json
在路由器之前添加一个查找.json的中间件,如果找到,则在req上设置一个属性并将其从url中删除,允许路由像往常一样处理它。但最好只使用适当的标题或查询参数。要继续@stUrb comment,请看以下问题:我不知道您可以在这样的路由中使用*,它应该满足我的需要。将此作为答案发布,我会接受。适用于新应用程序,但与OP的Prexisiting API不兼容。适用于新应用程序,但与OP的Prexisiting API不兼容。