最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

格式化API的MongoDb响应

IT培训 admin 3浏览 0评论

格式化API的MongoDb响应

我正在尝试在MongoDb中检索一个集合,问题是即使处理尚未完成,API也已响应。因此,基本上我想做的是使用find检索结果,使用foreach遍历结果,并将每一行推入数组。

我已经尝试过各种建议,但到目前为止都无济于事。下面是我要实现的目标的粗略概念。

get: async function (req, res, next) {
        let messagesArray = []
        let sessionId = req.query.session

        client.connect(err => {
            try{
                const collection = client.db("xxxxxxx").collection("xxxxxxx")
                let results = collection.find({},{sessionId:sessionId}) 

                for (const result of results){
                   order = {"text" : order.partner+", "+order.order+ ", "+order.quantity}
                   messagesArray.push(order)
                }
            }
            catch(e){

            }

            client.close()

            res.send(200,{messages:messagesArray})
        })

    },
回答如下:get: async function (req, res, next) { let messagesArray = [] var counter = 0; let sessionId = req.query.session client.connect(err => { try{ const collection = client.db("xxxxxxx").collection("xxxxxxx") let results = collection.find({},{sessionId:sessionId}) for (const result of results){ order = {"text" : order.partner+", "+order.order+ ", "+order.quantity} messagesArray.push(order) counter++; if(counter == results.length) { client.close() res.send(200,{messages:messagesArray}) } } } catch(e){ } }) },

格式化API的MongoDb响应

我正在尝试在MongoDb中检索一个集合,问题是即使处理尚未完成,API也已响应。因此,基本上我想做的是使用find检索结果,使用foreach遍历结果,并将每一行推入数组。

我已经尝试过各种建议,但到目前为止都无济于事。下面是我要实现的目标的粗略概念。

get: async function (req, res, next) {
        let messagesArray = []
        let sessionId = req.query.session

        client.connect(err => {
            try{
                const collection = client.db("xxxxxxx").collection("xxxxxxx")
                let results = collection.find({},{sessionId:sessionId}) 

                for (const result of results){
                   order = {"text" : order.partner+", "+order.order+ ", "+order.quantity}
                   messagesArray.push(order)
                }
            }
            catch(e){

            }

            client.close()

            res.send(200,{messages:messagesArray})
        })

    },
回答如下:get: async function (req, res, next) { let messagesArray = [] var counter = 0; let sessionId = req.query.session client.connect(err => { try{ const collection = client.db("xxxxxxx").collection("xxxxxxx") let results = collection.find({},{sessionId:sessionId}) for (const result of results){ order = {"text" : order.partner+", "+order.order+ ", "+order.quantity} messagesArray.push(order) counter++; if(counter == results.length) { client.close() res.send(200,{messages:messagesArray}) } } } catch(e){ } }) },

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论