Javascript RejectDB抛出错误,而不是在回调中返回错误

Javascript RejectDB抛出错误,而不是在回调中返回错误,javascript,node.js,error-handling,runtime-error,rethinkdb,Javascript,Node.js,Error Handling,Runtime Error,Rethinkdb,节点情况: r.db('users').get('e@mai.l').without(['password']).run() 如果用户不存在,数据库将抛出一个错误 -- 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').w

节点情况:

r.db('users').get('e@mai.l').without(['password']).run()
如果用户不存在,数据库将抛出一个错误

-- 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'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
问题:

  • 为什么重新思考会抛出错误,而不是在回调的第一个参数中返回错误
  • 为什么它会抛出错误呢?它不能在最后返回null并完成请求吗

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

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

    要避免错误,您可以执行以下操作
    r、 表(“用户”).get(“e@mai.l默认值({})。没有('password')

    你能显示你的代码吗?你没有给
    run()
    提供连接和回调,所以我不确定你到底在做什么。当然,你在使用一些承诺吗?如果是,您使用了
    链接,那么
    错误
    ?您是对的。我仔细检查了我的代码。回调中出现错误。对不起:)