首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mangodb中返回ctx

如何在mangodb中返回ctx
EN

Stack Overflow用户
提问于 2018-12-21 02:59:54
回答 1查看 191关注 0票数 0

我正在尝试Koa而不是express,我在退回ctx时遇到问题。

下面是我的代码:

代码语言:javascript
复制
router.get("/user/:id", async (ctx, next) => {
  mongodb.connect(url, { useNewUrlParser: true }, (err, db) => {
    if (err)
      throw ("error => " + err);
    else {
      var dbo = db.db("test");
      dbo.collection("users")
      .find({})
      .toArray((err, res) => {
        if (err)
          throw ("error => " + err);
        db.close();
        console.log(res);
        ctx.body = {
          "message": "GOT IT"
        }
      })
    }
  });
});

问题是ctx在回调中是未知的。你知道怎么把它放到回调中吗?

顺便说一句,res已正确填充。感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-01-07 03:43:53

也许回调函数的问题在于,您首先必须等待

代码语言:javascript
复制
dbo.collection("users").find({})

和do

代码语言:javascript
复制
toArray()

我使用koa-mongo库。这个库将mongo注入到上下文中。无需打开和关闭mongodb连接。

server.js

代码语言:javascript
复制
import Koa from 'koa'
import Mongo from 'koa-mongo'

const app = new Koa()
app.use(new Mongo(dbConfig))

在路由器中

代码语言:javascript
复制
 let db = ctx.mongo
 const result = await db.collection("users").find({})
 if (!result) {
      return []
 }
 return result.toArray()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53874531

复制
相关文章

相似问题

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