app.js显示错误:TypeError:无法调用方法'查询'为null

app.js shows error: TypeError: Cannot call method 'query' of null

本文关键字:查询 null 方法 显示 js 错误 TypeError app 调用      更新时间:2023-09-26

我是node.js的新手。我正在尝试将csv文件值加载到数据库中。错误显示如下:

错误:

位于
var stream = client.query(copyFrom('COPY menu_list FROM STDIN'));

TypeError: Cannot call method 'query' of null
  at /home/sathish/backup2/backup/sappsApli/routes/index.js:487:23
  at /home/sathish/backup2/backup/sappsApli/node_modules/pg/lib/pool.js:75:25
  at /home/sathish/backup2/backup/sappsApli/node_modules/pg/node_modules/generic-pool/lib/generic-pool.js:274:11
  at /home/sathish/backup2/backup/sappsApli/node_modules/pg/lib/pool.js:27:26
  at null.<anonymous> (/home/sathish/backup2/backup/sappsApli/node_modules/pg/lib/client.js:172:5)
  at EventEmitter.emit (events.js:95:17)
  at Socket.<anonymous> (/home/sathish/backup2/backup/sappsApli/node_modules/pg/lib/connection.js:109:12)
  at Socket.EventEmitter.emit (events.js:95:17)
  at Socket.<anonymous> (_stream_readable.js:710:14)
  at Socket.EventEmitter.emit (events.js:92:17)

我的代码:

var fs = require('fs');
var pg = require('pg');
var copyFrom = require('pg-copy-streams').from;
pg.connect(function(err, client, done) {
    console.log("welcome");
  var stream = client.query(copyFrom('COPY menu_list FROM STDIN'));
  var fileStream = fs.createReadStream('list.csv')
  fileStream.on('error', done);
  fileStream.pipe(stream).on('finish', done).on('error', done);
});

有谁能帮助解决这个问题吗?

如果不使用构造函数初始化客户端,则需要将连接字符串传递给pg.connect()

var conString = "postgres://username:password@localhost/database";
pg.connect(conString, function(err, client, done) {
    {...}
});

或者:

var client = new pg.Client(conString);
client.connect(function(error) {
    {...}
});

如果你检查了错误回调,它会告诉你问题出在哪里。