NodeJ找不到函数

时间:2018-01-02 16:58:52

标签: javascript node.js webstorm

我有一个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,他们的工作非常好。

这可能是什么问题?

1 个答案:

答案 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-postgreshttps://github.com/brianc/node-postgres

的更多文档