如何根据行数从列表中抛出(例如)404

时间:2012-08-08 07:01:25

标签: couchdb

我正试图从列表中触发404。像这样:

function (head, req) {
    var row;
    var returnArr = [];
    while (row = getRow()) {
        returnArr.push(row.value);
    }
    if(returnArr.length === 0) {
        start({code:404});
        send(JSON.stringify({error:"not found"}));
    } else {
        send(JSON.stringify(returnArr));
    }
};

我找到了一些帮助here。但是,我正在调用start()函数的接缝是迟到的。当start()函数在开头(第一行)正确时,它可以正常工作。

当然我之前无法调用start(),因为我首先必须确定视图是否有任何行。

如何实现这个?

更新

在调用getRow()之后,它确实触发了start()不起作用。不确定这是否是预期的行为。这也不起作用:

function (head, req) {
    var row;
    var returnArr = [];
    while (row = getRow()) {
        returnArr.push(row.value);
    }
    if(returnArr.length === 0) {
        throw (['error', 'not_found', 'Some message like Page not found']);
    } else {
        send(JSON.stringify(returnArr));
    }
};

1 个答案:

答案 0 :(得分:0)

是的,这是一个开放的错误。不幸的是Jira失败了所以我无法链接到这个问题。但是就像你发现的那样,你当前不能在start()之前调用getRow()。