2016-03-03 58 views
0

我在一个文件中定义连接,并试图访问另一个文件,当我得到这个错误。postgresql:无法调用未定义的方法'查询'

不能调用未定义

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()是否返回客户端对象?我认为它返回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()哪个返回void。

你应该定义如下

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

我也试过,它只返回void。当我尝试这种方式时,我得到这个错误:连接未定义 –

+0

您连接的方式是错误的。检查此链接https://www.npmjs.com/package/pg –

+0

当我尝试在一个页面中工作正常,但它不工作,当我尝试在两页 –

相关问题