Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带调用的Nodejs Postgres查询_Javascript_Node.js_Postgresql_Callback_Node Postgres - Fatal编程技术网

Javascript 带调用的Nodejs Postgres查询

Javascript 带调用的Nodejs Postgres查询,javascript,node.js,postgresql,callback,node-postgres,Javascript,Node.js,Postgresql,Callback,Node Postgres,我正试图使用的创建者的建议和单独的数据库调用作为一个单独的文件。这将支持扩展和合并各种样板查询类型。不幸的是,如何做到这一点对我不起作用。“cb(err,result)”抛出一个错误 这是我的测试样板数据库调用(db.js): 这是调用它的脚本(call.js): 这是控制台输出: 0 rows were received JSON3 rows: { "text": "Select addr_type, addr_descr FROM ref_addr_type;", "portal": "

我正试图使用的创建者的建议和单独的数据库调用作为一个单独的文件。这将支持扩展和合并各种样板查询类型。不幸的是,如何做到这一点对我不起作用。“cb(err,result)”抛出一个错误

这是我的测试样板数据库调用(db.js):

这是调用它的脚本(call.js):

这是控制台输出:

0 rows were received
JSON3 rows: {
 "text": "Select addr_type, addr_descr FROM ref_addr_type;",
 "portal": "",
 "_result": {
  "command": "SELECT",
  "rowCount": 5,
  "oid": null,
  "rows": [
   {
    "addr_type": "2",
    "addr_descr": "Home"
   },
   {
    "addr_type": "3",
    "addr_descr": "Institution"
   },
   {
    "addr_type": "1",
    "addr_descr": "Company"
   },
   {
    "addr_type": "8",
    "addr_descr": "Organization"
   },
   {
    "addr_type": "10",
    "addr_descr": "Government"
   }
  ],
  "fields": [
   {
    "name": "addr_type",
    "tableID": 17549,
    "columnID": 1,
    "dataTypeID": 20,
    "dataTypeSize": 8,
    "dataTypeModifier": -1,
    "format": "text"
   },
   {
    "name": "addr_descr",
    "tableID": 17549,
    "columnID": 2,
    "dataTypeID": 1043,
    "dataTypeSize": -1,
    "dataTypeModifier": -1,
    "format": "text"
   }
  ],
  "_parsers": [
   null,
   null
  ],
  "rowAsArray": false
 },
 "isPreparedStatement": false,
 "_canceledDueToError": false,
 "_promise": null,
 "domain": null,
 "_events": {},
 "_eventsCount": 1
}
JSON4 rows: undefined
如您所见,call.js中没有console.log输出(“Main db:,Main db json:”和“Main db inspect:”)。另外,“resultset”中没有行计数,我无法从JSON4数组中获得任何结果


我花了4天时间在这上面,可能犯了很多新手的错误。请提供一些指导,让db.js将值传递给call.js。

在“row”事件处理程序中设置“end”事件处理程序似乎是个坏主意。糟糕的设计。任何连接失败,您的代码都将失效。只有使用池才能启用自动重新连接。“结束”事件处理程序应该放在哪里?这种安排似乎是在查询完成时关闭连接的最合适方式。尽管如此,这可能与将值传递回call.js无关。维塔利,我一开始工作就会考虑游泳池。我的连接正常,但问题出在上游。顺便说一句,我这个月才开始学习javascript。@jurban1997这是一个更好的开始:谢谢,但是为什么数组没有被发送回call.js呢?
var db = require('../db');
var items = [];

items = db.query();

console.log("Main db: " + items);
console.log("Main db json: " + JSON.stringify(items));
console.log("Main db inspect: " + util.inspect(items));;
0 rows were received
JSON3 rows: {
 "text": "Select addr_type, addr_descr FROM ref_addr_type;",
 "portal": "",
 "_result": {
  "command": "SELECT",
  "rowCount": 5,
  "oid": null,
  "rows": [
   {
    "addr_type": "2",
    "addr_descr": "Home"
   },
   {
    "addr_type": "3",
    "addr_descr": "Institution"
   },
   {
    "addr_type": "1",
    "addr_descr": "Company"
   },
   {
    "addr_type": "8",
    "addr_descr": "Organization"
   },
   {
    "addr_type": "10",
    "addr_descr": "Government"
   }
  ],
  "fields": [
   {
    "name": "addr_type",
    "tableID": 17549,
    "columnID": 1,
    "dataTypeID": 20,
    "dataTypeSize": 8,
    "dataTypeModifier": -1,
    "format": "text"
   },
   {
    "name": "addr_descr",
    "tableID": 17549,
    "columnID": 2,
    "dataTypeID": 1043,
    "dataTypeSize": -1,
    "dataTypeModifier": -1,
    "format": "text"
   }
  ],
  "_parsers": [
   null,
   null
  ],
  "rowAsArray": false
 },
 "isPreparedStatement": false,
 "_canceledDueToError": false,
 "_promise": null,
 "domain": null,
 "_events": {},
 "_eventsCount": 1
}
JSON4 rows: undefined