Как заменить? заполнитель с * в запросе MySQL в Node/Express

Ниже приведен блок кода, который я использую для динамического построения запроса на основе параметров строки запроса. Все работает, как и ожидалось, однако, если первое условие верно, я пытаюсь заменить?? заполнитель с * и получая следующую ошибку:

Неизвестный столбец '*' в 'списке полей'

ПРИМЕЧАНИЕ: я использую пакет node-mysql2 здесь

async getTemplates(req, res, next) {

    let queryString = 'SELECT ?? FROM templates'
    let filters = []
    let queryParams = Object.entries(req.query)

    if (!req.query.select) {
      filters.unshift('*')
    }

    queryString += ' WHERE'
    queryParams.forEach(([key, value]) => {
      if (key === 'select') {
        filters.unshift(`${value}`)
      } else {
        filters.push(`${key}`, `${value}`)
        queryString += ' ?? = ? AND'
      }
    })
    queryString = queryString.slice(0, -4)

    try {
      let results = await db.query(queryString, filters)
      if (!results || results == '') {
        res.status(404).json({ message: 'Templates not found' })
      } else {
        res.status(200).json(results)
      }
    } catch (error) {
      next(error)
    }

0 ответов

Другие вопросы по тегам