NodeJs无法找到功能

har*_*ord 0 javascript node.js webstorm

我有一个NodeJs项目,一些导入的库无法正常工作,即bookshelf 和pg.这个问题似乎不是来自图书馆,因为它们是通过npm提供的"官方"套餐.

这是一个无法正常工作的代码段:

var pg = require('pg');
pg.connect('postgres://postgres:password@localhost:5432/myproject');
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

pg.connect();
TypeError: pg.connect is not a function
Run Code Online (Sandbox Code Playgroud)

虽然函数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;
Run Code Online (Sandbox Code Playgroud)

IDE告诉我,Model如果我将光标悬停在光标上,并且如果我尝试在数据库中创建一个新条目,则无法找到

new User({username: 'test',
           .... })
Run Code Online (Sandbox Code Playgroud)

我说错了

TypeError: User is not a constructor
Run Code Online (Sandbox Code Playgroud)

我再次使用图书馆书架的官方文档来创建最后一个片段.

我也使用express,hogan,bcrypt,他们的工作非常好.

这可能是什么问题?

Ele*_*Ele 6

关于connect功能问题:

var pg = require('pg');
var conString = "postgres://postgres:password@localhost:5432/myproject";

var client = new pg.Client(conString);
client.connect();
Run Code Online (Sandbox Code Playgroud)

connect函数在中声明Client

请点击此链接,获取有关node-postgres软件包https://github.com/brianc/node-postgres的更多文档