ошибка: синтаксическая ошибка на уровне или около «$»

#javascript #ecmascript-6 #axios #pg-promise

#javascript #ecmascript-6 #axios #pg-обещание

Вопрос:

В настоящее время я проверяю Vue и провожу небольшой рефакторинг в личном проекте.

Я столкнулся с некоторыми проблемами с моим API.

Задействованы две технологии: axios, которые я использую для отправки запросов в мой API, который взаимодействует с базой данных postgres с использованием pg-promise.

Вызов api…

 function add (entry, cb) {
  const length = entry.content.length
  entry.title = `${entry.content.substring(0, 32)}`
  axios.post('/api/notes', entry).then(cb)
}
  

здесь запись и объект { заголовок, содержимое, прио, статус, контекст }

конечная точка pg-promise

 export const createNote = (req, res, next) => {
  db.none('insert into entries(title, content, prio, status, context)'  
      'values( ${title}, ${content}, ${prio}, ${status}, ${context})',
    req.body)
  .then(() => {
    res.status(200)
    .json({
      status: 'success',
      message: 'Inserted one entry'
    })
  }).catch(err => next(err))
}
  

здесь req.body не определено

  1. Я не знаю, почему я становлюсь неопределенным.
  2. Помогает ли этот журнал ошибок?

Я читал документацию в axios и, похоже, не мог найти ничего плохого в моем вызове api, решил, что я опубликую что-нибудь здесь.

Спасибо!

Комментарии:

1. Я не знаю вашей проблемы, но это if утверждение может быть просто entry.title = entry.contnt.substring(0, 32); , вам не нужно if .

2. Я думаю 'values( ${title}, ${content}, ${prio}, ${status}, ${context})' , что должен быть шаблонный литерал (он должен использовать обратные знаки вместо апострофов).

3. Проверьте, какой результирующий запрос вы выполняете, либо с помощью pgp.as.format , либо путем регистрации запроса события.

4. @loganfsmyth хаха: sweat_smile:

5. @Gothdo я не уверен, раньше так работало с выборкой, а не с axios.

Ответ №1:

req.body Имеет следующую структуру [{…..}]

для pg-promise требуется {….}

Решение проблемы req.body[0]

  export const createNote = (req, res, next) => {
  db.none('insert into entries(title, content, prio, status, context)'  
      'values( ${title}, ${content}, ${prio}, ${status}, ${context})',
    req.body[0])
  .then(() => {
    res.status(200)
    .json({
      status: 'success',
      message: 'Inserted one entry'
    })
  }).catch(err => next(err))
}