Javascript ExpressJS中相同路由函数的多条路径
我使用Node、Express和Mongoose构建了一个服务。目前,它将模板呈现到前端,但我想将功能扩展到完整的API 我希望为每种类型的资源使用一个单独的路由,并返回一个标志,告诉服务器返回API内容,或者呈现视图并用HTML响应 这方面的例子如下:Javascript ExpressJS中相同路由函数的多条路径,javascript,node.js,express,router,Javascript,Node.js,Express,Router,我使用Node、Express和Mongoose构建了一个服务。目前,它将模板呈现到前端,但我想将功能扩展到完整的API 我希望为每种类型的资源使用一个单独的路由,并返回一个标志,告诉服务器返回API内容,或者呈现视图并用HTML响应 这方面的例子如下: /users/:userId /api/users/:userId 两者都将使用相同的函数(即users.getOne),然后检查路径api是否存在,并相应地发送正确的响应 显然,我可以做以下几点: app.get( '/users/:us
/users/:userId
/api/users/:userId
users.getOne
),然后检查路径api
是否存在,并相应地发送正确的响应
显然,我可以做以下几点:
app.get( '/users/:userId', users.getOne );
app.get( '/api/users/:userId', users.getOne );
并检入响应处理程序,尽管我不希望为每个资源定义两个路由。您可以在路由路径中使用路径模式或正则表达式 使用路径模式,您的路线将如下所示:
app.get( '(/api)?/users/:userId', users.getOne );
您可以制作一个简单的分派函数,将两者都添加进去;一个在路由前面加“/api”,然后像addGet一样调用它(“/users/:userId”,users.getOne);它可以做其他有趣的事情,或者接受一个标志来禁用一条或另一条路径;它可以帮助你的整个计划的清洁,而不是从它减损。。。