Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在rpc操作中对mysql的socketstream异步调用_Mysql_Node.js_Asynchronous_Socketstream - Fatal编程技术网

在rpc操作中对mysql的socketstream异步调用

在rpc操作中对mysql的socketstream异步调用,mysql,node.js,asynchronous,socketstream,Mysql,Node.js,Asynchronous,Socketstream,首先,我需要告诉你,我对nodejs、socketstream、angularjs和JavaScript的奇妙之处还很陌生。我有Java背景,这可能解释了我不知道异步操作的正确方法 玩我从americanyak安装的东西。我的问题是,现在Rpc似乎是一个同步接口,而我对mysql数据库的调用有一个异步接口。如何在调用Rpc时返回数据库结果 以下是到目前为止我使用socketstream 0.3所做的工作: 在app.js中,我成功地告诉ss允许通过放入ss.api.add('coolStore'

首先,我需要告诉你,我对nodejs、socketstream、angularjs和JavaScript的奇妙之处还很陌生。我有Java背景,这可能解释了我不知道异步操作的正确方法

玩我从americanyak安装的东西。我的问题是,现在Rpc似乎是一个同步接口,而我对mysql数据库的调用有一个异步接口。如何在调用Rpc时返回数据库结果

以下是到目前为止我使用socketstream 0.3所做的工作:

在app.js中,我成功地告诉ss允许通过放入
ss.api.add('coolStore',mysqlConn)访问我的mysql数据库连接位于正确的位置()。我使用mysql npm,因此可以在Rpc中调用mysql

server/rpc/coolRpc.js

控制台按照预期记录数据库条目的id。但是,我不知道如何使Rpc的return语句返回查询的行。解决这类问题的正确方法是什么


谢谢你的帮助。请友好地回答我,因为这也是我关于stackoverflow的第一个问题。

这不是同步的。结果准备好后,您可以将其发回:


您需要确保始终从RPC函数调用
res(…)
,即使发生错误,否则您可能会收到挂起的请求(客户端代码一直在等待从未生成的响应)。在上面的代码中,错误被转发到客户端,以便在那里处理。

它不是同步的。结果准备好后,您可以将其发回:


您需要确保始终从RPC函数调用
res(…)
,即使发生错误,否则您可能会收到挂起的请求(客户端代码一直在等待从未生成的响应)。在上面的代码中,错误被转发到客户端,以便在那里处理。

谢谢!哦,我的。。。毕竟就是这么简单。谢谢!哦,我的。。。毕竟就是这么简单。
exports.actions = function (req, res, ss) {

  // use session middleware
  req.use('session');

  return {
    get: function(threshold){
      var sql = "SELECT cool.id, cool.score, cool.data FROM cool WHERE cool.score > " + threshold;
      if (!ss.arbStore) {
            console.log("connecting to mysql arb data store");
            ss.coolStore = ss.coolStore.connect();
      }

      ss.coolStore.query(sql, function(err, rows, fields) {
            if(err) {
                    console.log("error fetching stuff", err);
            } else {
                    console.log("first row = "+rows[0].id);
            }
      });
      var db_rows = ???
      return res(null, db_rows || []);
    }
  }
exports.actions = function (req, res, ss) {

  // use session middleware
  req.use('session');

  return {
    get: function(threshold){
      ...
      ss.coolStore.query(sql, function(err, rows, fields) {
        res(err, rows || []);
      });
    }
  }
};