1

Nodejs情况:

r.db('users').get('e@mai.l').without(['password']).run()

如果用户不存在 rethinkdb 会抛出错误

-- 2014-01-22T13:26:04.720Z [20163] [ ctx error ] --
RqlRuntimeError: Cannot perform without on a non-object non-sequence `null`. in:
r.table('users').get('e@mai.l').without(['password'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

问题:

  1. 为什么 Rethink 会抛出错误而不是在回调的第一个参数中返回它们?
  2. 为什么它仍然会抛出错误?它不能最终返回 null 并完成请求吗?
4

1 回答 1

1

错误应该在回调的第一个参数中返回。

它返回一个错误,因为您试图从空对象中删除一个字段。RethinkDB 会抛出一个错误,例如 Node 尝试访问 null 字段时。

为避免该错误,您可以执行 r.table("users").get("e@mai.l").default({}).without('password')

于 2014-01-22T23:47:19.463 回答