我有一个NodeJs项目,并且 某些 导入的库无法正常工作,即bookshelf和pg。这个问题似乎不是来自图书馆,因为它们是通过npm提供的“官方”软件包。
这是一个无法正常工作的代码段:
var pg = require('pg');
pg.connect('postgres://postgres:password@localhost:5432/myproject');
给我以下错误:
pg.connect();
TypeError: pg.connect is not a function
虽然函数connect()显然存在,但应根据文档以这种方式访问。
这也发生在书架上。如果我尝试这样的事情:
var knex = require('knex')({
client: 'mysql',
connection: {
host : 'localhost',
user : 'root',
password : 'mypw',
database : 'userdb',
charset : 'utf8'
}
});
var bookshelf = require('bookshelf')(knex);
var User = bookshelf.Model.extend({
tableName: 'user'
})
bookshelf.plugin('registry');
module.exports = bookshelf;
IDE告诉我,如果我将光标悬停在光标上,并且如果我尝试使用
在数据库中创建新条目,则无法找到Model
new User({username: 'test',
.... })
我收到错误说
TypeError: User is not a constructor
同样,我使用了图书馆书架的官方文档来创建最后一个片段。
我也在使用express,hogan,bcrypt,他们的工作非常好。
这可能是什么问题?
答案 0 :(得分:6)
关于connect
功能的问题:
var pg = require('pg');
var conString = "postgres://postgres:password@localhost:5432/myproject";
var client = new pg.Client(conString);
client.connect();
connect
函数在Client
请点击此链接,了解有关node-postgres
包https://github.com/brianc/node-postgres