运行器在 Knex.js 的查询中未定义

Runner is undefined in query of Knex.js

本文关键字:查询 未定义 js Knex 运行      更新时间:2023-09-26

我尝试在Node上使用Knex.js.js通过以下代码:

var Promise = require("bluebird");
var knex = require("knex")({  
    client: 'pg',
    user     : 'username',
    database : 'database',
    password: "password",
    migrations: {
        tableName: 'knex_migrations'
    },
    pool: {
        min: 0,
        max: 7
    }
});
knex.select("*").from("users").then(function(rows){
    console.log(rows);
});

但是,它抛出了一个关于Runner对象的错误,如下所示:

/path/to/myapp/node_modules/knex/lib/interface.js:27
    return new Runner(this).run().then(onFulfilled, onRejected);
           ^
TypeError: undefined is not a function
    at QueryBuilder_PG.Target.then (/path/to/myapp/node_modules/knex/lib/interface.js:27:12)
    at Object.<anonymous> (/path/to/myapp/test.js:14:32)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

当我尝试使用streampipeexectransaction时,发生了同样的错误。
请告诉我如何解决这个问题...

我真的很粗心地对待客户端的配置。我对"连接"的描述是错误的。它必须写成如下:

var Promise = require("bluebird");
var knex = require("knex")({
    client: 'pg',
    connection: {
        host     : '127.0.0.1',
        user: 'username',
        database: 'database',
        password: 'password'
    },
    migrations:{
        tableName:"knex_migrations"
    },
    pool: {
        min: 0,
        max: 7
    }
});
knex.select("*").from("users").then(function(rows){
    console.log(rows);
});

它工作没有问题。
谢谢!