首页 > 解决方案 > 在(几乎)相同的创建中遇到了来自 Waterline 的意外错误

问题描述

运行以下代码以创建新的数据库 (PostgreSQL 11.3) 行:

const supplier = await Supplier.create(
      Object.assign({}, entityData, {
        last_activity_date: sails.services.datehelper.GetTimeNow(),
        account: supplierParams.supplier,
        monitored: !!activeRegistry,
        verified: true
      })
    );
error: Error (E_UNKNOWN) :: Encountered an unexpected error
    at new WLError (invoice-portal/node_modules/waterline/lib/waterline/error/WLError.js:25:15)
    at invoice-portal/node_modules/waterline/lib/waterline/model/lib/defaultMethods/save.js:188:17
    at invoice-portal/node_modules/waterline/node_modules/async/lib/async.js:52:16
    at invoice-portal/node_modules/waterline/node_modules/async/lib/async.js:550:17
    at invoice-portal/node_modules/waterline/node_modules/async/lib/async.js:544:17
    at _arrayEach (invoice-portal/node_modules/waterline/node_modules/async/lib/async.js:85:13)
    at Immediate.taskComplete (invoice-portal/node_modules/waterline/node_modules/async/lib/async.js:543:13)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)

标签: sails.jswaterline

解决方案


我在 invoice-portal/node_modules/waterline/lib/waterline/model/lib/defaultMethods/save.js 中添加了一些额外的日志记录(最终在正确的位置)以捕获所有保存的数据,这不是供应商的创建失败但插入发票行项目(在创建/更新供应商后发生)。

一些时间/相关性故障使 Sails 在创建供应商后抛出错误(可能在交易结束时)为什么我在看错误的地方......修复发票项目数据的验证错误解决了这个问题!


推荐阅读