首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adonis Lucid ORM未返回数据

Adonis Lucid ORM未返回数据
EN

Stack Overflow用户
提问于 2019-03-09 21:06:02
回答 2查看 1K关注 0票数 2

我是Adonis JS的新手,对这个愚蠢的问题感到非常抱歉。

我有默认设置的Adonis JS与Mysql数据库和一切工作。

我已经创建了一个简单的usertest路由,其中返回ID为1的用户的JSON。

下面是相同的代码

代码语言:javascript
复制
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)
})

但它返回的是空对象

原始响应:

代码语言:javascript
复制
{}

控制台日志语句响应:

代码语言:javascript
复制
Promise { <pending> }

我不能理解我在这里错过了什么。

注意:我尝试过let data = User.find(1),但它不起作用。

请帮帮我。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-09 21:40:20

快速注意,至少您必须异步执行查询。

我的意思是,你必须替换:

代码语言:javascript
复制
let data = User.query().where('id', 1)
    .first()

出自:

代码语言:javascript
复制
let data = await User.query().where('id', 1)
    .first()

当然,这意味着您必须在函数箭头前面加上async

代码语言:javascript
复制
Route.get('/usertest', async ({ response }) => {  
  // rest of the code
  let data = await User.query().where('id', 1).first()
  // rest of the code    
})
票数 2
EN

Stack Overflow用户

发布于 2019-11-02 03:13:29

当你开始使用async-await框架时,很容易错过"await“。这只是对查询的一个建议,当您想要查找一个对象时,使用ORM的预定义函数是一个很好的实践。在这种情况下

常量用户=等待User.findBy('id',1)

这将返回它找到的具有给定id的第一个对象。您可以在knex.js docs http://knexjs.org/#Builder-where中找到更多选项和帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55077645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档