Koa-pg无法找到模块pg

时间:2015-07-30 10:04:12

标签: node.js postgresql koa

嘿所以我试图让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)

这只是个人项目,但我很想知道我哪里出错了。 干杯

1 个答案:

答案 0 :(得分:1)

如评论中所述:

如果要将pg模块保存到npm install pg,则需要通过npm install pg --savepackage.json安装。

您需要执行此操作的原因是koa-pgco-pg作为依赖项,因此在安装前者时,也会安装后者。但pg不是co-pg的依赖项,这就是您必须单独安装它的原因。