В моем URL-адресе я хочу иметь возможность искать столбцы "active" и "last_name"... с параметрами:
active
name
как это:
localhost:4001/api/v1/users/?active=1&name=Peter
users.js
var sql = "SELECT * from users";
var existingParams = ["active", "name"].filter(field => req.query[field]);
if (existingParams.length !== 0) {
sql += ' WHERE ';
sql += existingParams.map(field => '${field} = ?').join(" AND ");
}
... дает мне следующее:
SELECT * from users WHERE active = ? AND name = ? LIMIT 100
Я получаю сообщение об ошибке, хотя... поскольку имя столбца в базе данных определяется как "last_name"... поэтому я хочу, чтобы в итоге получилось так:
SELECT * from users WHERE active = ? AND last_name = ? LIMIT 100
... но сохраните параметр поиска в url 'name'. Как мне нужно изменить свой сценарий?
existingParams.map(field => {
if (field === 'name') {
field = 'last_name'
}
return '${field} = ?'
}).join(" AND ");
попробуйте это и дайте мне знать
${field} = ?
) определяет столбец для поиска. Он ищет в несуществующем столбце. Значения верны