首页 > 解决方案 > Knex Insert 和 onConflict 不是函数

问题描述

我尝试使用 knex 添加一个简单的 upsert。推荐的方法是(对于 postgres)使用 onConflict。有效的原始代码(更新部分除外):

const dbObject = db();
await dbObject('names')
  .insert({key: key, name: name});

因此,我根据手册中的内容对其进行了更新:

在此处输入图像描述

const dbObject = db();
await dbObject('names')
  .insert({key: key, name: name})
  .onConflict('key')
  .merge();

但是,这给出了以下错误:

TypeError: dbObject(...).insert(...).onConflict 不是函数

这对我来说是一个谜,因为我使用的是正确的版本:

npm 查看 knex 版本

0.95.0

并且 knex db 对象基本上是由(从文件加载配置)创建的:

const knex = knexBuilder({
  client: 'pg',
  connection: config,
  pool: {min: 0, max: maxConnections},
});
return knex

是什么导致了错误,onConflict 不是一个函数?

标签: node.jsknex.js

解决方案


推荐阅读