0

我是一名开发网络应用程序的新手程序员。因为我现在有东西,所以每个查询都有一条路由到我的数据库。我知道必须有一种方法可以使用路由参数来引导路由执行正确的功能,但是我在实现中遇到了问题。

这是我的路线现在的样子:

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 中命名的任何函数。

有没有一种简单的方法来实现这一点?

4

1 回答 1

1

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

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

app.get('/query/:query', parseParam);
于 2013-07-21T04:14:48.290 回答