【问题标题】:How to call pg-promise helpers.insert function?如何调用 pg-promise helpers.insert 函数?
【发布时间】:2019-03-01 04:32:38
【问题描述】:

为以下函数提供“pgp”的最佳方法是什么?
考虑到 'db' 可以是上面的 db connectiontransaction (tx)task

module.exports = async (db, tableName, records) => {
  const record_ = records[0]
  const columns_ = []
  for (const c_ in record_) { columns_.push(c_) }
  const insert_ = pgp.helpers.insert(records, columns_, tableName)
  return db.result(insert_, null, r => r.rowCount)
}

【问题讨论】:

  • 您能否更具体地说明您要问的是什么?你的问题似乎很混乱,到处都是。
  • 问题已澄清

标签: pg-promise


【解决方案1】:

Where should I initialize pg-promise,它显示了你:

module.exports = {
    pgp, db
};

...所以您可以导入它并在需要时使用。

【讨论】:

  • a) 'pgp' 在 package_1 中初始化 - 根据您在特定模块中的描述。比 package_2 使用 package_1。在顶部 package_main 使用 package_1 和 package_2。结果,我在 package_main 中获得了有效的 pgp,但在 package_2 中未定义。能否请教一下如何解决?
  • 我不知道包 2 或主包是什么。数据库模块没有其他依赖项,因此如果您遇到一些依赖项循环,那是在您这边,与这里无关。
  • 再说一次 - 这不是很方便。抱歉回来了!.. 根据您的方法,我需要将“pgp”传递给许多使用数据拨号的函数。因为需要调用 'helpers.insert'、'QueryFile' 和其他...获取 'db.$config.pgp' 的替代方法非常有用,但它仅对 db 有效。我非常需要来自 TX 和 TASK 的相同参考!为什么不见了?
  • @LeonidMaksimshin 为什么不直接从数据库模块返回{db, helpers, QueryFile}?这就是通常使用调制命名空间的方式。
  • 这种方法有效,但让我问一下: db.$config 的原因是什么?简化我猜?拥有许多以 db/tx/task 形式连接的用于数据操作的小例程是否是一种好习惯 - 取决于它在程序逻辑中的位置?那么为什么所有三种形式的连接都没有与 $config 类似的接口呢?毕竟大多数数据操作功能都是一样的......
猜你喜欢
  • 2018-02-28
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 2018-05-07
  • 1970-01-01
  • 2018-05-23
  • 2017-11-29
相关资源
最近更新 更多