无法在localhost上使用Koa上的koa-pg中间件查询PG数据库

时间:2016-12-25 15:06:29

标签: postgresql koa

过去,我已经能够使用连接到Heroku上托管的数据库的import numpy as np df['Room'] = np.where(df[0].notnull(), df[0].astype(str).str[0], np.nan) 中间件连接到postgres数据库,但是我在连接到本地托管数据库时遇到问题。

具体来说,我遇到的错误是koa-pg

以下是我在单文件应用上的设置:

TypeError: Cannot read property 'client' of undefined

以下是问题所在的路线:

const koa = require('koa');
let route = require('koa-route'); // For calling specific routes
let request = require('koa-request');  // For RESTful requests
let paramify = require('koa-params'); 
var koaPg = require('koa-pg');
let pg = require('pg'); // .native;
let cors = require('koa-cors');
let parser = require('xml2js').parseString;

// pg.defaults.ssl = true;

route = paramify(route);
let param = route.param;
let get = route.get;

let app = koa();
let appPort = (process.env.PORT || 3000)
app.use(cors());
app.use(koaPg('postgres://localhost:5432/ttc_clustering_dev'));

看来我已根据the docs使用了正确的设置,但我可能会在这里找不到的东西。还有其他人看到我跌倒的地方吗?

可在此处找到完整文件:https://github.com/brianbancroft/ttc-clustering/blob/add-records-to-db/server/app.js

1 个答案:

答案 0 :(得分:1)

由于文档应该是:

let result = yield this.pg.db.client.query_(query_content)

而不是

let result = yield pg.db.client.query_(query_content)

所以this.丢失了。

在审核您的代码时,您明确要求pg,因此您的代码会调用该代码而不是koa-pg中的代码。因此,似乎没有定义pg.db。有意义吗?