【问题标题】:Why am getting this error TypeError: Cannot read property 'client' of undefined为什么会收到此错误 TypeError: Cannot read property 'client' of undefined
【发布时间】:2020-08-16 01:10:19
【问题描述】:
if (arguments.length === 0 || !config.client && !config.dialect) {
                                    ^

TypeError: 无法读取未定义的属性“客户端”

为什么会出现这个错误?

【问题讨论】:

  • 您的配置变量未定义。您可能应该检查它的价值。
  • @Asteriscus 真正的问题不是问题的代码,而是提问者没有给出基本上下文。这是 Node.js 中的模块 Knex 从模块内部生成的错误。 Knex 抱怨它没有得到预期的数据。 . .但如果他的代码和我的代码一样,那么他就是在给它数据,但 Knex 还是在抱怨。这是同一问题的更好构建:stackoverflow.com/questions/47379839/…

标签: javascript mysql node.js database knex.js


【解决方案1】:

config 变量是 undefined。在读取config.clientconfig.dialect 的值之前,您应该检查它

if (arguments.length === 0 || (config && !config.client && !config.dialect))

请记住,如果 config 是 undefined,则 OR 子句中正确表达式的评估将是错误的

【讨论】:

    【解决方案2】:

    我也遇到了这个问题。在我的代码中,我通过以下方式初始化 knex。

    const knex = require('knex')(process.env.DATABASE_URL)

    当我检查process.env.DATABASE_URL 的值时,我发现它是未定义的。一旦我解决了这个问题,错误就消失了! (就我而言,我的 .env 文件放错了位置)

    【讨论】:

      猜你喜欢
      • 2020-09-20
      • 2020-03-03
      • 2019-04-05
      • 1970-01-01
      • 2019-01-11
      • 2021-09-25
      • 1970-01-01
      • 2023-02-22
      • 2019-08-13
      相关资源
      最近更新 更多