【问题标题】:Koa-pg Can't find module pgKoa-pg 找不到模块 pg
【发布时间】: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


【解决方案1】:

如 cmets 中所述:

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

您需要这样做的原因是koa-pg 具有co-pg 作为依赖项,因此当您安装前者时,也会安装后者。但是pg 不是co-pg 的依赖项,这就是为什么您必须单独安装它的原因。

【讨论】:

  • 啊太棒了...我可以看到 co-pg 是一个依赖项,并假设所有其他依赖项都已包含在内。我已经安装了 pg 并且我的服务器正在运行,虽然调用我的路由会导致服务器崩溃……但那是另一回事。
猜你喜欢
  • 2021-06-17
  • 1970-01-01
  • 2017-12-24
  • 2018-02-23
  • 1970-01-01
  • 2016-05-04
  • 2015-04-23
  • 1970-01-01
  • 2018-04-11
相关资源
最近更新 更多