请教一个Node.js常规服务端开发的问题...
正常进行服务端编程,当然会包括数据库的in和out… 但在使用Java或C#等进行服务端开发时,我们一般会建立一个DAO层来处理所有与DB操作相关的逻辑。 但node.js是基于回调的,node.js现在的mysql包也是使用回调的,这就有一个很明显的问题,返回结果会在异步回调函数之前执行,造成了返回结果为空。 不只这里有问题,安装正常服务端开发的逻辑,控制层或起调度分派作用的逻辑,同理当然也无法获得返回值。
如果摒弃Java或C#常规开发思想,让node.js后台使用回调会有几种方式来解决这个问题: 1,增加标记位,判断是否完成回调后,在进行返回结果——如果是只有一次或几次查询很简单,建立几个标记位即可,可是web开发,面临的不是几次查询那么简单。 2,使用轮询判断回调是否完成,浪费资源。 3,使用插件step,async等来进行同步控制。 4,回调的更彻底一些,把response作为参数传递到业务逻辑中,耦合性也太强了吧…
我刚刚接触node.js没多久,遇到这个问题很困惑,期待大家帮我来帮助我解决或者和一起来探讨这个问题
1 回复
sorry,以为没发送成功,发帖重复了…