无法将 JavaScript 值从查询传递到 WebSocket
cannot pass javascript values from query to websocket
我使用 nodejs 0.10.12 和 node-postgre 2.2.0
我创建了一个包含两个不同查询的函数,它们执行良好并返回结果。
查询执行后,我想收集两个查询的所有结果,并通过 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}));
编辑现在我意识到,如果我第一次执行此代码,客户端警报将不受限制。对于第二个,提醒我选择的上一个对象的数据。如果我单击对象 1,我会取消定义。如果我单击对象 2,我会得到对象 1。请指教
基于Mathieu 'OtaK' Amiot简单而有效的想法,我在第一个查询的"结束"事件中进行第二个查询。
所以这是代码
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"
感谢马蒂厄的惊人想法。现在工作正常。
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- j查询utc offSets的时差
- 如何有效地将游戏数据存储在URL查询字符串中
- chrome在WebSocket握手期间获取新错误
- 如何处理node.js节点mongodb中的连接和查询队列
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 如何从 HTML 查询中删除项目
- 从查询字符串参数推断出正确的数据类型
- 将curl查询转换为jQuery.ajax()
- 触发媒体查询断点时刷新页面
- 使用DynamoDB查询返回
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- 如何将PHP get查询转换为Meteor's HTTP.get()
- AngularJS:获取链接中没有哈希的查询字符串值
- 捕获初始RedQueryBuilder查询中的SQL问题
- AngularJS,如何更改查询字符串
- 具有大型几何图形的基于沙发的空间查询
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- Websocket 从查询中获取参数
- 无法将 JavaScript 值从查询传递到 WebSocket