当前位置: 首页 > 知识库问答 >
问题:

如何在node.js中重构具有不同路由但相同操作的app.get

景元忠
2023-03-14

我想简化一段我的代码,但不确定如何做。我有

// Monitoring route
app.get('/ping', (req, res)=>{
  res.send('Hello World!');
})

// Route that receives a GET
app.get('/getCar', (req, res)=>{  routes.get(req, res);})
app.get('/getCarList', (req, res)=>{  routes.get(req, res);})
app.get('/getDriver', (req, res)=>{  routes.get(req, res);})
app.get('/getDriverList', (req, res)=>{  routes.get(req, res);})
app.get('/getCarDriver', //do something else than the rest)

所以我想让这四个应用一起做同样的事情。我开始考虑为结果做一个函数,如下所示:

var getSendRes = (req, res)=>{  routes.get(req, res);}

但我认为如果我把所有的应用程序合并在一起做同样的事情会更好。知道吗?

谢谢,

共有1个答案

郭永安
2023-03-14

一种选择是绑定routes.get函数,这样每次都可以引用它,而不是键入它:

const getBound = routes.get.bind(routes);
app.get('/getCar', getBound);
app.get('/getCarList', getBound);
// etc

如果您有一大堆,您可以迭代一个数组的路由字符串

for (const str of ['getCar', 'getCarList', 'getDriver', 'getDriverList']) {
  app.get('/' + str, (req, res) => { routes.get(req, res); }
}
 类似资料:
  • 在一条骆驼路线中,我有两个url调用,调用两个不同的应用程序。 两者都能够抛出。因此,如果URL1抛出我必须处理的异常并将交换体设置为“数据源1不可用”,并且如果URL2抛出相同的异常,我想显示不同的消息。 如何使用onException处理此问题

  • 问题内容: 我想解析一个json文件,但它经过这样的事情: 但是大约有三千个这样的对象。我一直在使用Gson解析我的json对象,但是我怎么解析这种文件呢?以及如何检索名称“ CDG”或“ ORY”? 问题答案: 您可以尝试如下操作: 使用gson,您可以按以下方式检索键名: 并使用java- json 可以执行以下操作: 从网址获取json:

  • 我在web.php添加了以下路线,但它不起作用。 我的控制器如下所示,我正在使用Ajax发送数据,但收到的错误是Method not allowed exception。 Ajax代码----------------

  • 我正在使用的数据库有许多具有相同列但(显然)具有不同表名的表(不是我设计的)。例如(这些是数据库表名): 有没有可能用JPA和Hibernate将这些映射到一个Java类实体?类的名称是,然后在使用它时传入例如,以便对象使用表? 还是只使用普通的、普通的Java对象来完成这样的任务更好? 谢谢你!

  • 我遇到了一个问题,当使用相同的根查询在两个相邻的react-router-中继路由组件中请求数据时,第二个路由组件中的graph ql服务器查询使先前从第一个路由组件中检索到的数据无效。 例如: 我正在使用一种解决方法将字段附加到“查看器”根节点,以便从根字段查询数据数组: 我的schema.js包括查看器(用户)类型和根的以下定义: 和根: 现在,在main.jsx应用切入点中,我定义了以下路线

  • 问题内容: 我正在尝试使用单独的路线,但在我的React App中添加/编辑表单的组件相同,如下所示: 现在,在manageClient组件中,我解析查询参数(我在编辑路由中传递带有客户端ID的查询字符串),并根据传递的查询参数有条件地进行渲染。 问题在于这不会再次重新安装整个组件。假设打开了一个编辑页面,并且用户单击添加组件,URL发生了更改,但是该组件没有重新加载,因此保留在编辑页面上。 有办