Adonis Lucid ORM не возвращает данные
Я новичок в Adonis JS, поэтому мне очень жаль глупого вопроса.
У меня есть настройки по умолчанию Adonis JS с базой данных Mysql и все работает.
Я создал простой пользовательский маршрут, в котором я возвращаю JSON пользователя с идентификатором: 1.
Ниже приведен код для того же
Route.get('/usertest', ({ response }) => {
const User = use('App/Models/User')
let data = User.query().where('id', 1)
.first()
console.log(data)
return response.status(200).json(data)
})
Но это возвращаемый и пустой объект
Необработанный ответ:
{}
Ответ оператора консоли:
Promise { <pending> }
Я не могу понять, что мне здесь не хватает.
Примечание: я пытался let data = User.find(1)
но это не сработало.
Пожалуйста, помогите мне.
Заранее спасибо!!!
1 ответ
Быстрое примечание, по крайней мере, вы должны выполнить запрос асинхронно.
Я имею в виду, вы должны заменить:
let data = User.query().where('id', 1)
.first()
от:
let data = await User.query().where('id', 1)
.first()
Конечно, это означает, что вы должны предшествовать стрелке функции async
:
Route.get('/usertest', async ({ response }) => {
// rest of the code
let data = await User.query().where('id', 1).first()
// rest of the code
})
Очень легко пропустить "await", когда вы начинаете работать с фреймворками async-await. Просто предложение по запросу всякий раз, когда вы хотите найти один объект, рекомендуется использовать предопределенную функцию ORM. В этом случае
const user = ожидание User.findBy('идентификатор',1)
это вернет первый найденный объект с заданным идентификатором. Дополнительные параметры и помощь можно найти в документации knex.js http://knexjs.org/