合并Express.js中的路由

时间:2013-07-21 03:17:38

标签: node.js express routes

我是一名从事网络应用程序的新手程序员。正如我现在所做的那样,每个查询都有一条路由到我的数据库。我知道必须有一种方法可以使用路由参数来指示路由执行正确的功能,但我在实现方面遇到了问题。

以下是我的路线现在的样子:

var database = require('./routes/database');

app.get('/query/type', database.type);
app.get('/query/test', database.test);
app.get('/query/another', database.another);
app.get('/query/onemore', database.onemore);

每个路由都映射到database.js文件中的一个函数。我想尝试用以下格式实现一些东西,用一行来处理查询:

app.get('/query/:query', database.query)

执行参数中命名的任何函数的位置:query。

有没有简单的方法来实现这个?

1 个答案:

答案 0 :(得分:1)

你可以创建一个函数来解析参数并使用关联数组来构建你想要执行的函数然后调用它。见下面的代码。

function parseParam(req, res) {
  var func = database[req.param('query')];
  func(req, res);
}

app.get('/query/:query', parseParam);