2016-03-03 5 views
0

Я определяю соединение в одном файле и пытаюсь получить доступ к этому в другом файле, чтобы получить эту ошибку.postgresql: Не удается вызвать метод 'query' undefined

Невозможно вызвать метод 'запрос' неопределенных

config.js:

var pg = require('pg'); 
var conString = "pg://postgres:*****@localhost:5432/test"; 
var client = new pg.Client(conString); 

module.exports = { 
C : client.connect() 
}; 

db.js:

var config = require('../config'); 
var client = config.C; 

var query = client.query('CREATE TABLE items(id SERIAL PRIMARY KEY, text VARCHAR(40) not null, complete BOOLEAN)'); 
query.on('end', function() { client.end(); }); 

почему это показывает ошибку. Как определить общее соединение и доступ из других файлов.

+0

В config.js работает 'client.connect()' return 'client'? Я думаю, что он возвращает null/void или ничего. –

ответ

0

я получил ответ:

config.js:

var pg = require('pg'); 
var conString = "pg://postgres:****@localhost:5432/test"; 
var client = new pg.Client(conString); 
client.connect(); 
module.exports = client; 

db.js:

var client = require('../config.js'); 
var query = client.query('CREATE TABLE test1(id SERIAL PRIMARY KEY, text VARCHAR(40) not null, complete BOOLEAN)'); 
    query.on('end', function() { client.end(); }); 

Клиент не будет иметь нулевой здесь. ДБ будет подключен, и таблица будет создана.

0

Я думаю, что есть проблема в вашем файле config.js. Вы назначаете Cclient.connect(), которые возвращают пустоту.

Вы должны определить следующим образом

config.js

var pg = require('pg'); 
var conString = "pg://postgres:*****@localhost:5432/test"; 
var client = new pg.Client(conString); 

module.exports = { 
    C : client 
}; 

db.js

var config = require('../config'); 
var client = config.C; 

client.connect(function(err){ 
    if(err) { 
     return console.error('could not connect to postgres', err); 
    } 
    var query = client.query('CREATE TABLE items(id SERIAL PRIMARY KEY, text  VARCHAR(40) not null, complete BOOLEAN)'); 
    query.on('end', function() { client.end(); }); 
}); 
+0

Я тоже пробовал это, он возвращает только пустоту. Когда я пробовал этот путь, я получаю эту ошибку: connect не определен –

+0

То, как вы подключаетесь, неверно. Проверьте эту ссылку https://www.npmjs.com/package/pg –

+0

Когда я попытался на странице работать нормально, но не работал, когда пытался на двух страницах –

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