#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 не определено
- Я не знаю, почему я становлюсь неопределенным.
- Помогает ли этот журнал ошибок?
Я читал документацию в 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))
}