我正在开发REST API。在我的一条路线/api/v1/user
上,您可以通过网址传递参数,例如。 /api/v1/user?id=1&login=asdf
。我希望我的应用程序从SQLite数据库返回用户对象(我使用node-sqlite3
包连接到db)。为了做到这一点,我将不得不做这样的事情(这是sqlite查询,后来传递给像db.all()这样的函数并执行):
sql = `SELECT _id, login FROM Users WHERE _id={$req.swagger.params.id.value} AND login={req.swagger.params.id.value} ...
这最终很痛苦,并没有真正起作用,因为我的网址中的所有参数都是可选的(没有参数意味着返回所有用户),我不知道如何在sql
查询字符串中使这些参数成为可选项。
长话短说,我需要一个可以接受一个对象的模块,从中查询,例如。来自这个对象:
{
id: 1,
login: login1
}
它会创建一个查询
SELECT * FROM Users WHERE id=1 AND login=login1
当然选择了完全自定义的表和列。如果这是可能的话,如果它可以使查询适合于上一个选择的数据库,那将是很好的。
编辑:忘记添加,我使用swagger-express模块作为我的应用程序的基础框架。