Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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值从查询传递到websocket_Javascript_Node.js_Websocket - Fatal编程技术网

无法将javascript值从查询传递到websocket

无法将javascript值从查询传递到websocket,javascript,node.js,websocket,Javascript,Node.js,Websocket,我使用nodejs 0.10.12和node postgre 2.2.0 我创建了一个包含两个不同查询的函数,它们执行fine并返回结果 执行查询后,我希望收集两个查询的所有结果,并通过WebSocket将它们发送到客户端 我无法将查询中的值传递给WebSocket。在客户机中,当我通知传入的数据时,我得到“未定义”。我想把变量设置为全局变量,但还是没有 有什么想法吗 提前谢谢 这是密码 //set all vars as globals, at the start of the doc va

我使用nodejs 0.10.12和node postgre 2.2.0

我创建了一个包含两个不同查询的函数,它们执行fine并返回结果

执行查询后,我希望收集两个查询的所有结果,并通过WebSocket将它们发送到客户端

我无法将查询中的值传递给WebSocket。在客户机中,当我通知传入的数据时,我得到“未定义”。我想把变量设置为全局变量,但还是没有

有什么想法吗

提前谢谢

这是密码

//set all vars as globals, at the start of the doc
 var mnm=[]; var name;

//inside the function

//query 1
client.connect();
var query = client.query('SELECT pins.p_name  FROM pins WHERE  pins.p_id ='+eoid)

query.on("row", function (row, result) {result.addRow(row);});

query.on("end", function (result) {  

    for (var i=0; i<result.rows.length; i++)
    {name = result.rows[0].p_name;}

});

//query 2
var query2 = client.query('SELECT m_name  FROM multi WHERE m_pins ='+eoid)

query2.on("row", function (row, result) {result.addRow(row);});

query2.on("end", function (result) { 
      for (var i=0; i<result.rows.length; i++)
     {mnm.push(result.rows[i].m_name);}
client.end();
});


//so , now gather "name" from the first query and "mnm" from the second and send them to client
connection.send(JSON.stringify({name:name , mnm:mnm}));
client.connect();
var query = client.query('SELECT pins.p_name  FROM pins WHERE  pins.p_id ='+eoid)

query.on("row", function (row, result) {result.addRow(row);});

query.on("end", function (result) { 

for (var i=0; i<result.rows.length; i++)
    {name = result.rows[0].p_name;}

       var query2 = client.query('SELECT m_name  FROM multi WHERE m_pins ='+eoid)
       query2.on("row", function (row, result) {result.addRow(row);});
         query2.on("end", function (result) { 
           for (var i=0; i<result.rows.length; i++)
           {mnm.push(result.rows[i].m_name);}
        connection.send(JSON.stringify({name:name , mnm:mnm}));
        client.end();
      });//inner query "on end"

}); //outter query "on end"
//在文档开头将所有变量设置为全局变量
var mnm=[];变量名;
//函数内部
//问题1
client.connect();
var query=client.query('从pins.p_id='+eoid的pins中选择pins.p_名称)
on(“row”,函数(row,result){result.addRow(row);});
on(“end”,函数(result){

对于(var i=0;i,基于Mathieu'OtaK'Amiot简单但有效的想法,我在第一个查询的“end”事件中进行第二个查询

这是代码

//set all vars as globals, at the start of the doc
 var mnm=[]; var name;

//inside the function

//query 1
client.connect();
var query = client.query('SELECT pins.p_name  FROM pins WHERE  pins.p_id ='+eoid)

query.on("row", function (row, result) {result.addRow(row);});

query.on("end", function (result) {  

    for (var i=0; i<result.rows.length; i++)
    {name = result.rows[0].p_name;}

});

//query 2
var query2 = client.query('SELECT m_name  FROM multi WHERE m_pins ='+eoid)

query2.on("row", function (row, result) {result.addRow(row);});

query2.on("end", function (result) { 
      for (var i=0; i<result.rows.length; i++)
     {mnm.push(result.rows[i].m_name);}
client.end();
});


//so , now gather "name" from the first query and "mnm" from the second and send them to client
connection.send(JSON.stringify({name:name , mnm:mnm}));
client.connect();
var query = client.query('SELECT pins.p_name  FROM pins WHERE  pins.p_id ='+eoid)

query.on("row", function (row, result) {result.addRow(row);});

query.on("end", function (result) { 

for (var i=0; i<result.rows.length; i++)
    {name = result.rows[0].p_name;}

       var query2 = client.query('SELECT m_name  FROM multi WHERE m_pins ='+eoid)
       query2.on("row", function (row, result) {result.addRow(row);});
         query2.on("end", function (result) { 
           for (var i=0; i<result.rows.length; i++)
           {mnm.push(result.rows[i].m_name);}
        connection.send(JSON.stringify({name:name , mnm:mnm}));
        client.end();
      });//inner query "on end"

}); //outter query "on end"
client.connect();
var query=client.query('从pins.p_id='+eoid的pins中选择pins.p_名称)
on(“row”,函数(row,result){result.addRow(row);});
on(“end”,函数(result){

对于(var i=0;我将进入异步的奇妙世界!你不能这样做。而且,这段代码非常容易受到SQL注入的攻击。@SLaks Hello。我刚刚编辑了这个问题。看,整个混乱开始了。如果
pins
没有与之相关的
m_pins
,整个查询将失败。所以我想实现两个不同的查询。哦,拜托,必须有另一种方法。我是一个新手,我正在为此工作一周。请告诉我,还有另一种方法@slevin,你也可以在第一种方法的“结束”事件中进行第二次查询;)