【问题标题】:How to get response from an api, but not a 504 gateway time out issue如何从 api 获得响应,但不是 504 网关超时问题
【发布时间】:2019-05-29 20:43:23
【问题描述】:
module.exports.usersPagination = (root, { start, limit }) => {
return new Promise((resolve, reject) => { 
var status = true;
db.User.find({accountType:'user',isDeleted: {$ne: 
{status}}}).count().exec((err, count) => {
db.User.find({accountType:'user',isDeleted: {$ne: 
{status}}}).sort({created:-1}).skip(start).limit(limit).exec((err, user) => 
{
if(user)
{
 user[0].count = count
 err ? reject(err) : resolve(user);       
 }
 })
 });
 });
 };

我收集了 80,000 条记录,我想在 UI 中每页显示 20-20 条,但我的问题是当我尝试将起始值设为“30000”时 在邮递员中,它显示网关超时,请帮帮我。 提前感谢

【问题讨论】:

    标签: mongodb graphql


    【解决方案1】:

    您得到的错误是由于服务器处理请求并返回响应的时间过长:

    504 网关超时:服务器充当网关或代理,没有收到来自上游服务器的及时响应。 (来自维基百科)

    确实,您的代码对数据库执行了两次查询:

    1. 确实第二次执行跳过start行,但是...
    2. ...查询的第一个实例是具体化数据库中的整个行集。

    只查询一次,不要具体化整组行。

    【讨论】:

    • 我想显示收集的总用户数,所以我使用的是查询的第一个实例
    • 得到了解决方案,在第二次执行时我删除了sort({created:-1}),它对我来说工作正常
    猜你喜欢
    • 2019-07-11
    • 2021-03-03
    • 1970-01-01
    • 2011-07-29
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多