Эй, поэтому я пытаюсь заставить 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)
Это только личный проект, но я бы хотел понять, где я иду не так. Приветствия
Вам все еще нужно установить модуль 'pg' (' npm install pg'), 'koa-pg' - это просто оболочка. –
'koa-pg' имеет' co-pg' как зависимость, поэтому, когда вы устанавливаете прежний, последний также устанавливается. Но 'pg' не является зависимостью' co-pg', и поэтому вам нужно установить его отдельно. @BenFortune, вероятно, вы должны просто сделать свой комментарий в ответ, потому что на самом деле нечего добавить. –
@PeadarDoyle Я позволю тебе, так как ты объяснил это лучше, чем я. :) –