Adonis Lucid ORM 不返回数据
Adonis Lucid ORM Not Returning data
我是 Adonis JS 的新手,对这个愚蠢的问题深表歉意。
我有 Adonis JS 的默认设置,Mysql 数据库和一切正常。
我创建了一个简单的 usertest 路由,我返回 JSON ID 为 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)
但没有成功。
请帮助我。
提前致谢!!!
快速说明,至少您必须异步执行查询。
我的意思是,你必须更换:
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"。每当您想查找一个对象时,只是对查询的一个建议,使用 ORM 的预定义函数是一种很好的做法。在这种情况下
const user = await User.findBy('id',1)
这将 return 它找到的第一个具有给定 ID 的对象。您将在 knex.js 文档 http://knexjs.org/#Builder-where
中找到更多选项和帮助
我是 Adonis JS 的新手,对这个愚蠢的问题深表歉意。
我有 Adonis JS 的默认设置,Mysql 数据库和一切正常。
我创建了一个简单的 usertest 路由,我返回 JSON ID 为 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)
但没有成功。
请帮助我。
提前致谢!!!
快速说明,至少您必须异步执行查询。
我的意思是,你必须更换:
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"。每当您想查找一个对象时,只是对查询的一个建议,使用 ORM 的预定义函数是一种很好的做法。在这种情况下
const user = await User.findBy('id',1)
这将 return 它找到的第一个具有给定 ID 的对象。您将在 knex.js 文档 http://knexjs.org/#Builder-where
中找到更多选项和帮助