我有一个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,他们的工作非常好.
这可能是什么问题?
我正在尝试运行一个使用Tie :: File模块的perl脚本.
它基本上应该做的是读取当前目录中的所有文件,切断第一个文档的最后一行,然后是每个其他文档的第一行和最后一行以及最后一个文档的第一行,然后写下所有内容到一个新文件.
当我试图运行我的脚本时(可能会有一些错误...如果你发现任何人可以纠正它们,我会很高兴)我收到错误消息:
Can't locate object method "TIEARRAY" via package "TIE:File" at script.pl line 28, <$fh> line 7.
Run Code Online (Sandbox Code Playgroud)
我在代码中标记了第28行.
我已经安装了最新版本的Tie :: File并进行了检查
cpan Tie::File
Run Code Online (Sandbox Code Playgroud)
和
cpan Tie::Array
Run Code Online (Sandbox Code Playgroud)
如果一切都已安装,我收到Tie :: Array是最新的(v1.06),Tie :: File是最新的(v1.00)终端,所以必须正确安装.
#!/usr/bin/perl
use Cwd;
use Tie::File;
use Tie::Array;
my $cwd = getcwd();
my $buff = '';
# Get all files in cwd.
#my @files = grep { -f && /\.txt$/ } readdir $cwd;
my @files = grep ( -f ,<*.txt>);
# Cut off footer of first (files[0]) …Run Code Online (Sandbox Code Playgroud)