【发布时间】:2017-07-10 07:09:20
【问题描述】:
这里是项目安装:
1. Nodejs服务端环境
2. MySQL 数据库(带有 Knexjs 查询生成器)
3. 数据库中的'locations' 表,其中包含'country', 'city', 'category', 'working_hours' 等字段。
4.表单输入,用户可以选择所有这些值并提交搜索。当用户什么都不选择时,它默认为“ALL”。我需要过滤数据库并选择与用户搜索输入对应的行。
我试图做这样的事情:
knex('locations').where({
country: countryInput,
city: cityInput,
category: categoryInput,
working_hours: hoursInput
})
.then(function(rows) {.....})
.catch(function(err) {.....});
如果用户选择了所有输入字段,这很有效,如果用户只选择其中几个并且其他设置为“全部”怎么办?如何使这项工作?
提前谢谢你!
【问题讨论】:
-
你可以提供一个回调到'where'方法:
knex('users').where(function() { if (condition) { this.where('name', 'John'} else..... })
标签: php mysql node.js database knex.js