nodejs setget方法中回调函数 返回值问题
发布于 10 年前 作者 cnhonker07 5213 次浏览 最后一次编辑是 8 年前 来自 问答

//dbCon.js

  • var setUser = function (callback) {
  • sql.open(conn_str, function (err, conn) {
    
  •     if (err) {
    
  •         console.log("Error opening the connection!");
    
  •         return callback(err);
    
  •     }
    
  •     conn.queryRaw
    
  •     (
    
  •     "SELECT Username,Password FROM Users", function (err, results) {
    
  •         if (err) {
    
  •             console.log("Error running query!");
    
  •             return callback(err);
    
  •         }
    
  •         for (var i = 0; i < results.rows.length; i++) {
    
  •             users += results.rows[i][0].toString() + ",";
    
  •             console.log(users);
    
  •         }
    
  •         callback(err, users.substring(0, users.lastIndexOf(",")));
    
  •     }
    
  •     );
    
  • });
    
  • };
  • exports.setUser = setUser;

//im.js

  • var user = require(’./dbCon.js’);
  • var uids = “”;
  • function uid(callback) {
  • user.setUserId(function (err, data) {
    
  •     uids = data;
    
  •     callback(err, uids);
    
  • });
    
  • }
  • exports.uid = uid;

//cookies.js

  • var cookies = {
  • (…set…省略了)
  • get: function (name) {
  • if (name == “uid”) {
  •        var u = require('./im.js');//主要是这部分主要是这部分主要是这部分主要是这部分主要是这部分
    
  •         u.uid(function (err, data) {
    
  •           return data;//没有值。如果把这部分全部去掉。进来if直接  return "123“  就没问题。怎么弄?怎么弄????
    
  •       });
    
  •     }
    
  •     else return null;
    
  • }
    
  • }

//前台 <script> cookies.get(‘uid’); </script>

当参数是uid的时候,就通过im.js中的函数返回一个值,这部分代码放到单独的js中没有问题的。

1 回复

怎么破、、、怎么破啊

回到顶部