2014-12-19 2 views
0

Я пытался использовать Knex.js на Node.js с помощью следующего кода:Runner не определено в запросе Knex.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 

Когда я пытаюсь использовать stream, pipe, exec и transaction, то же произошла ошибка.
Скажите, пожалуйста, как решить эту проблему ...

ответ

1

Я был очень невнимателен в отношении конфигурации клиента. Я ошибался в описании «connection». Он должен быть записан следующим образом:

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); 
}); 

Работает без проблем.
Спасибо!

Смежные вопросы