我为vertica创建了一个简单的Web界面。 我在vertica集群上面暴露了简单的操作。 我公开的功能之一是查询vertica。 当我的用户输入多个查询时,节点模块抛出异常,我的进程退出并退出1。 有没有办法抓住这个例外? 有没有办法以不同的方式克服这个问题?
答案 0 :(得分:2)
现在,当使用回调查询结果时,无法克服这个问题。
防止这种情况发生将涉及确保用户的输入中只有一个查询。这很难,因为它涉及解析SQL。
回调API不是为了处理多个查询而构建的。我根本没有打算对这个案子进行妥善处理,因为这对我来说从来都不是问题。
您可以使用事件侦听器API代替回调,它会向您发送较低级别的消息,并自行处理。
q = conn.query("SELECT...; SELECT...");
q.on("fields", function(fields) { ... }); // 1 time per query
q.on("row", function(row) { ... }); // 0...* time per query
q.on("end", function(status) { ... }); // 1 time per query