node-mysql 如果一个请求里包含多个查询,怎么写比较合适呢?
发布于 3年前 作者 cuimuxi 1766 次浏览

由于NODE的异步特性,两个query 如果是平行的,返回结果就不确定了,在模板中无法取到对应的数据。如果使用闭包又很别扭

比如:

 db.query('select * from xxx limit 1' function(err, rows){
      //do something
     db.query('xxx", function(err,another_rows){
     //do another thing
   });
 });

这样的写法虽然也能达到效果,但一个页面假设10个查询,这样就嵌套了10层,总觉得太恶心,是不是有更好的方式? 我刚用这个东西,不太懂,忘各位指点

5 回复

后一个query依赖前边的query的执行结果么?要是不依赖,就用EventProxy;有依赖的话,自己封装事件吧。

有依赖的就用Jscex嘛

  • 确定要在数据查询层做同异步嘛?可以考虑在业务层啊。
  • 数据层用DAO模型只做数据操作的好,然后具体的业务位于上一层,同异步在这里做,可以用到的库就很多了,如eventproxy、async、Jscex等。

我不是要做异步,而是刚入门不知道方向,感谢各位指点

step就搞定了。

回到顶部