当key不满足couchbase视图中的确切值时,响应自定义错误

时间:2016-02-15 08:25:28

标签: couchbase couchbase-view

我有一个像

这样的文件
{
 "fullUserName": "xxyz",
 "userFirstName": "xx",
 "userLastName": "xx",
 "primaryRole": "xy",
 "actualRole": "rrr",
 "userId": "abcd1234",
 "password":"c28f5c7cb675d41c7763ab0c42d",
 "type":"login",
 "channels":"*"
}

并查看 -

function (doc, meta) {
    if(doc.userId,doc.password,doc.type){
      emit([doc.userId,doc.password,doc.type],doc);
    }
}

当密钥与docment的属性匹配时,它返回文档,否则返回空的JSON,如 -

{"total_rows":2,"rows":[
  ]
}

现在我想在密钥不匹配时以JSON格式响应错误消息 - 例如 -

{
  "Error-Code":"400",
  "Error-Msg":"user id and password does not match"
}

有没有办法这样做,如果我向错误的方向移动,请更正。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您不应该直接向用户公开视图查询结果,而是将其解释为。

因此,请创建一个查看请求,查看响应并执行检查的业务逻辑。例如:

  

"如果结果为空,则只能是因为用户未知或密码哈希与用户不匹配,因此返回特定于业务的错误消息,否则继续登录"

您无法改变服务器的行为和响应格式,无论如何这样做都没有多大意义。这是您与服务器交互方式的API和合同。您应该在两者之间的层中添加自己的业务逻辑。