【问题标题】:What am I doing wrong to get an 500 statusCode我在做什么错才能获得 500 statusCode
【发布时间】:2016-05-02 19:59:27
【问题描述】:

soda-js 是否支持此代码,如果支持,为什么我会收到 500 状态代码

var identifier = 'fgzt-sd3n'
var op = new soda.Consumer('data.cms.gov', options);
op.query()
    .withDataset(identifier)
    .where({npi:"in('1598908824','1194758300')"})
    .getRows()
    .on('success', function(rows){console.log(rows)})
    .on('error', function(error){console.log(error)})
}

我的列表也可以是一个数组或至少一个字符串变量,可能像

'in('+strList+')'

在哪里

var strList="'1598908824','1194758300'"

【问题讨论】:

    标签: socrata soda


    【解决方案1】:

    试试这个:

    var identifier = 'fgzt-sd3n' var op = new
    soda.Consumer('data.cms.gov', options); op.query()
        .withDataset(identifier)
        .where({"npi in('1598908824','1194758300')"})
        .getRows()
        .on('success', function(rows){console.log(rows)})
        .on('error', function(error){console.log(error)}) }
    

    我怀疑您之前传递的 where 为您提供了 $where=npi=in(...) 的 SoQL 查询,这将失败。

    您应该收到 400 错误,而不是无用的 500 - 我将提交一个错误!

    【讨论】:

    • 好的,我想你的意思是where("npi in('1598908824','1194758300')"),它很完美。谢谢
    • in(...) 中我可以拥有的元素的限制是什么。显然不支持 500 个元素,因为它返回 {}
    • 这取决于您的 HTTP 库,但您的 SoQL 查询总长度需要小于 2000 到 4000 个字符。我们的系统将阻止任何超过 4000 的内容,但许多库实现的上限接近 2000。
    猜你喜欢
    • 2011-11-11
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多