【问题标题】:Pg promise suddenly complain about table name is unknownpg promise突然抱怨表名未知
【发布时间】:2017-11-08 03:46:38
【问题描述】:

console.log(columnsets.activites.forInsert)

给我

ColumnSet {
table: "accounting"."activities"
columns: [
    Column {
        name: "note"
    }
    Column {
        name: "title"
    }
    Column {
        name: "context_id"
        prop: "contextId"
    }
    Column {
        name: "created_timestamp"
        prop: "createdTimestamp"
    }
    Column {
        name: "created_by_id"
        prop: "createdById"
    }
    Column {
        name: "object_id"
        prop: "objectId"
        cnd: true
    }
]

}

pgp.helpers.insert({ contextId: user.objectId, createdById: user.objectId, createdTimestamp: now, note: null, objectId: uuid.v4(), title: MESSAGE_SUCCESS_USER_AUTHENTICATE }, columnSets.activities.forInsert)

我可以发誓它直到最近才为我工作。我不确定发生了什么变化。我设置了表名但为什么抱怨Error: Table name is unknown.

【问题讨论】:

  • 如果你的columnSets.activities.forInsert 不是带有指定表的ColumnSet 对象,它只会这样抱怨。很可能是undefined 或其他东西;)
  • @vitaly-t i 控制台将其记录下来,如图所示:S
  • 这样就不会抱怨了,肯定是有什么问题。我建议调试以查看缺少的内容;)
  • @vitaly-t 会调查一下。它以前有效,我没有改变任何东西
  • 这是很多开发人员使用的ColumnSet 类型的最基本功能。它不仅会自行停止工作,还必须有其他事情发生,某些事情未包含在您展示的代码中。唯一有意义的是,如果 columnSets.activities.forInsert 不包含您在将其传递到方法 helpers.insert 时的想法。

标签: javascript pg-promise


【解决方案1】:

与对helpers.insert 的调用相比,您在哪一点调用console.log(columnsets.activites.forInsert) 尚不清楚,但我猜它是在之后发生的。

您会收到错误Table name is unknown 的原因只有一个,那就是您的columnsets.activites.forInsert 不包含带有表信息的ColumnSet

没有其他情况会出现该错误。你可以调试代码来检查;)

【讨论】:

  • 谢谢。所以这是节点模块问题。我不确定究竟是什么原因造成的,以及它最初为什么会发生。删除 node_modules 不足以解决问题。我最终也删除了 node_modules 以及 package-lock.json 。现在一切都恢复正常了。感谢回复!这个库没有错,我只是在寻找一些可能的错误。但是这个 node_modules 问题确实很奇怪:(
  • @Zanko 这可能是由于使用了使用旧版本pg-promise 的模块造成的,如果您与它交换任何pg-promise 结构,则会产生版本冲突。
猜你喜欢
  • 1970-01-01
  • 2014-08-24
  • 2021-09-27
  • 2017-08-07
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 2023-03-16
  • 2021-09-29
相关资源
最近更新 更多