我是事件/回调样式编程和NodeJS的新手。我正在尝试实现一个小的http服务器,它使用node-mysql模块来提供ddbb数据。
我的问题来自查询结构。由于经常有一些查询需要运行先前查询的结果,因此我无法同时(html" target="_blank">异步)运行所有查询,因此不得不等待一些结果。
我的第一种方法是同时运行所有非依赖性查询,然后循环运行,直到所有非依赖性查询都设置了一个标志,说我已经完成,这样我就可以继续处理非依赖性(同步)查询,但是我不这样做知道这是否是正确的方法。
像这样:
function x(){
var result_for_asynch_query_1 = null
var result_for_asynch_query_2 = null
mainLoop(){
// call non-dependant query 1
// call non-dependant query 2
// loop until vars are != null
// continue with queries that require data from the first ones
}
}
//for each browser request
httpServer{
call_to_x();
}.listen();
这样,我可以节省一些时间来获得最终结果,因为我不需要以串行方式等待所有响应,而只是等待最长的响应。
有一种通用的方法吗?我不遵循的任何设计模式?
尝试以其他方式思考(异步流howtonode.org上有很好的介绍)
var db = get_link_or_pool();
do_queries( callback ) {
db.query(sql1, function(err, res1) {
if (err) {
callback(err);
return;
}
// use res1 ...
db.query(sql2, function(err, res2) {
if (err) {
callback(err);
return;
}
callback(null, res2); // think 'return'
}
});
}
request_handler(req) {
do_queries( function(err, result) {
if(err)
report_error(err);
else
write_result(req, result);
});
}
问题内容: 我已经阅读了一些在node.js中使用mysql的示例,并且对错误处理有疑问。 大多数示例都进行如下错误处理(为简便起见): 每次发生sql错误时,这都会导致服务器崩溃。我想避免这种情况并保持服务器运行。 我的代码是这样的: 我不确定这是否是处理它的最佳方法。我也想知道查询的块中是否应该有一个。否则,连接可能会保持打开状态并随着时间的推移逐渐建立。 我习惯了Java 或在这里可以“干净
问题内容: 我有python背景,目前正在迁移到node.js。由于其异步特性,我无法适应node.js。 例如,我试图从MySQL函数返回一个值。 经过一番阅读后,我意识到上面的代码无法正常工作,由于node.js的异步特性,我需要返回一个promise。我无法编写像python这样的node.js代码。如何转换为返回承诺,以及如何处理返回的值? 实际上,我想做的就是这样。 如何以可读的方式在n
想知道如何看待mysql json专栏? category_ids例如) [19, 102, 108] 如果我想搜索包含类别id 102的产品列表,如何使用queryDSL进行查询? 我尝试了JsonNode类型,但它不起作用。
问题内容: 如何在同一例程中使用两个游标?如果我删除了第二个游标声明并获取了循环,一切都将正常工作。该例程用于在我的webapp中添加朋友。它使用当前用户的ID和我们要添加的朋友的电子邮件作为朋友,然后检查电子邮件是否具有相应的用户ID,如果不存在朋友关系,它将创建一个。除此以外的任何其他常规解决方案也都很好。 问题答案: 我终于写了一个执行相同功能的不同函数: 我希望这是一个更好的解决方案,无论
问题内容: 在我正在使用的Web服务中,我需要使用查询参数来实现一个URI,如下所示: 要对其进行分解,我需要能够使用查询参数来指定多个/所有商店中的数据以及这些商店中多个/所有项目的数据。到目前为止,我已经能够很好地实现一个查询参数以提取项目数据,但是我对如何实现更多查询一无所知,而且似乎找不到我之前所见过的资源。通过此实现。 到目前为止,我所采用的方法是 这对于一项很有效,如果我不在URI中键
问题内容: 我想编写脚本,具有对多个插入查询的功能。让我更好地解释一下。 我有一个html形式的输入。而且我有MySQL查询要插入到表中。所以我想让我的函数为“数量”次插入此查询。 例如要插入3次。有什么建议么? 问题答案: http://dev.mysql.com/doc/refman/5.5/zh- CN/insert.html