Реализовать поиск по вхождению с начала строки node.js (postgres)
подскажите пожалуйста, не могу реализовать поиск по вхождению с начала строки. В базе таблица words, колонка с данными search-word. Реализован метод получения списка. Добавить поиск, фильтрацию не удается. Скорее всего ошибка в написании функции или SQL запроса.
router.js
router.get('/list', listController.searchList)
controller.js
async searchList(req, res) {
try{
const searchList = await listService.searchList()
return res.json(searchList)
}catch{
console.log(err)
}
}
service.js
async searchList() {
const q = req.query.q;
const findWord = await db.query('SELECT * FROM words WHERE "search-word" LIKE $1', [q + '%'])
console.log(findWord)
return findWord;
}
запрос в POSTMAN
http://localhost:3000/api/list?q=аспирин

Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Нашел проблему. Некорректный SQL запрос + необходимо было передавать параметр в функцию. service.js
async searchList(tag) {
const findWord = await db.query(`SELECT * FROM words WHERE "search-word" ILIKE $1`, [tag + '%']);
return words;
}
controller.js
async searchList(req, res) {
try{
const tag = req.query.q
const searchList = await listService.searchList(tag)
return res.json(searchList)
}catch{
console.log(err)
}
}
