2015-07-30 2 views
1

Эй, поэтому я пытаюсь заставить Nodejs Koa поговорить с postgres, используя модуль Koa-pg, но я продолжаю получать ошибку «Не могу найти модуль pg». Я попытался следовать примерам koa-pg, но придумал короткий ... так что любые советы о том, как продвигаться, будут оценены.Koa-pg Не удается найти модуль 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

Вам все еще нужно установить модуль 'pg' (' npm install pg'), 'koa-pg' - это просто оболочка. –

+0

'koa-pg' имеет' co-pg' как зависимость, поэтому, когда вы устанавливаете прежний, последний также устанавливается. Но 'pg' не является зависимостью' co-pg', и поэтому вам нужно установить его отдельно. @BenFortune, вероятно, вы должны просто сделать свой комментарий в ответ, потому что на самом деле нечего добавить. –

+1

@PeadarDoyle Я позволю тебе, так как ты объяснил это лучше, чем я. :) –

ответ

1

Как уже упоминалось в комментариях:

Вам необходимо установить модуль pg через npm install pg или npm install pg --save, если вы хотите, чтобы сохранить его в package.json.

Причина, по которой вам нужно это сделать: koa-pg имеет co-pg в качестве зависимости, поэтому, когда вы устанавливаете прежний, последний также устанавливается. Но pg не является зависимостью co-pg, поэтому вам нужно установить его отдельно.

+0

Ах блестящий ... Я видел, что co-pg была зависимостью, и предполагалось, что все другие зависимости были бы включены. Я установил pg и мой сервер работает, хотя вызов моего маршрута заставляет сервер упасть ... но это другая история. – hloughrey