Javascript 查询在PGAdmin中工作,但在服务器(节点\本地主机)上失败

Javascript 查询在PGAdmin中工作,但在服务器(节点\本地主机)上失败,javascript,postgresql,pg,Javascript,Postgresql,Pg,我们使用节点服务器和pg模块来调用我们的postgres数据库。在pgadmin中进行查询时,我会得到所需的结果,但是当尝试在我们的服务器(js)上运行相同的查询时,它会抛出错误,有人知道这是什么原因,以及如何修复吗 以下是一个问题: SELECT DISTINCT waswindows.computername as servername, waswindows.appcode, ipaddress, result, WASInventorywindows.uploaddate FR

我们使用节点服务器和pg模块来调用我们的postgres数据库。在pgadmin中进行查询时,我会得到所需的结果,但是当尝试在我们的服务器(js)上运行相同的查询时,它会抛出错误,有人知道这是什么原因,以及如何修复吗

以下是一个问题:

 SELECT DISTINCT waswindows.computername as servername, waswindows.appcode, ipaddress, result, WASInventorywindows.uploaddate
    FROM public.waswindows JOIN WASInventorywindows
    ON (waswindows.appcode = $1 OR waswindows.computername LIKE $2 OR WASInventorywindows.appcustodian LIKE $2)
    AND position(WASInventorywindows.servername in waswindows.computername) > 0
    AND result = 'FAILED' AND waswindows.uploaddate = (SELECT MAX(uploaddate) FROM waswindows)
这在PGAdmin中运行得很好(用params替换$1和$2),并且在PGAdmin和Server中运行一个非常类似的查询,没有任何错误,但是失败了。以下是错误日志:

PARAMS ARE: Alex  AND   %Alex%
{ error: syntax error at or near "JOIN"
    at Connection.parseE (C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node_modules\pg\lib\connection.js:567:11)
    at Connection.parseMessage (C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node_modules\pg\lib\connection.js:391:17)
    at Socket.<anonymous> (C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node_modules\pg\lib\connection.js:129:22)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at TCP.onread (net.js:548:20)
  name: 'error',
  length: 94,
  severity: 'ERROR',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '143',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'scan.l',
  line: '1086',
  routine: 'scanner_yyerror' }
C:\Users\326009107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\API\WAS\getdata.js:44
                                set.push(results.rows);
参数为:Alex和%Alex%
{错误:在“JOIN”处或附近出现语法错误
在Connection.parseE(C:\Users\32609107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node\u modules\pg\lib\Connection.js:567:11)
在Connection.parseMessage(C:\Users\32609107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node\u modules\pg\lib\Connection.js:391:17)
插座。(C:\Users\32609107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\node\u modules\pg\lib\connection.js:129:22)
在emitOne(events.js:96:13)
在Socket.emit(events.js:188:7)
在readableAddChunk(_stream_readable.js:176:18)
在Socket.Readable.push(_stream_Readable.js:134:10)
在TCP.onread(net.js:548:20)
名称:“错误”,
长度:94,
严重性:“错误”,
代码:“42601”,
细节:未定义,
提示:未定义,
位置:'143',
内部位置:未定义,
internalQuery:未定义,
其中:未定义,
模式:未定义,
表:未定义,
列:未定义,
数据类型:未定义,
约束:未定义,
文件:“scan.l”,
行:“1086”,
例程:“扫描器错误”}
C:\Users\32609107.MAPLE\Desktop\Compliance\GHSRiskTSSCompliance\API\WAS\getdata.js:44
set.push(results.rows);

我们尝试将名称更改为别名,重新排序项目,更改db字符串,但仍然一无所获

好的,我已经找到了原因,并将其发布在这里,供那些会遇到同样问题的人使用。在web端的查询中连接字符串时,请确保有空格,例如:

  "SELECT DISTINCT name, address, city" +
  "FROM public.city JOIN employees"...
是错误的,正确的版本如下所示:

  "SELECT DISTINCT name, address, city" +
  " FROM public.city JOIN employees"...
   ^_________note this space_______