【发布时间】:2015-10-21 15:14:38
【问题描述】:
嘿,所以我试图让 Nodejs Koa 使用 Koa-pg 模块与 postgres 对话,但我不断收到“找不到模块 pg”错误。 我尝试按照 koa-pg 示例进行操作,但做得很短......所以任何关于如何进步的建议都将不胜感激。
如果创建我的 app.js 文件如下:
var koa = require('koa');
var route = require('koa-route');
var koaPg = require('koa-pg');
var roads = require('./controllers/roads');
var app = module.exports = koa();
app.use(route.get('/roads/bbox/', roads.bbox));
app.listen(3000);
console.log('listening on port 3000');
然后创建我的控制器文件如下:
var credentials = require('../credentials.js');
var environment = credentials.dev;
app.use(koaPg('postgres://' + environment.user + '@' + environment.host + ':' + environment.port + '/' + environment.database))
module.exports.bbox = function * bbox(next) {
var result = yield this.koaPg.db.client.queryPromise('SELECT now()')
console.log('result: ', result)
this.body = result.rows[0].now.toISOString()
};
但我收到以下错误:
module.js:338
throw err;
^
Error: Cannot find module 'pg'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (c:\Users\User\Documents\restful_koa\node_modul
es\koa-pg\index.js:12:27)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
这只是一个个人项目,但我很想知道我哪里出错了。 干杯
【问题讨论】:
-
你还需要安装
pg模块(npm install pg),koa-pg只是一个包装器。 -
koa-pg具有co-pg作为依赖项,因此当您安装前者时,也会安装后者。但是pg不是co-pg的依赖项,这就是您必须单独安装它的原因。 @BenFortune 您可能应该将您的评论作为答案,因为实际上没有其他要添加的内容。 -
@PeadarDoyle 我会让你,因为你解释得比我好。 :)
标签: node.js postgresql koa