RethinkDB抛出错误,而不是在callback中返回它们
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']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
问题:
- 为什么Rethink会抛出错误而不是在callback的第一个参数中返回?
- 为什么它会抛出错误呢? 不能它只是最后返回null,完成请求?
该错误应该在callback的第一个参数中返回。
它会返回一个错误,因为您试图从空对象中删除一个字段。 RethinkDB抛出一个错误,就像Node试图访问一个null字段时一样。
为了避免错误,你可以使用r.table(“users”)。get(“e@mai.l”)。default({})。without('password')