Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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
Node.js Nodejs中的回调函数_Node.js_Callback - Fatal编程技术网

Node.js Nodejs中的回调函数

Node.js Nodejs中的回调函数,node.js,callback,Node.js,Callback,我有功能 var checkTokenIsExpired = function(name, token, response) { LoginToken.find( { name: name, series: token }, function(error, info){ console.log("info: ", info[0]['expire']); if (error) { // resp

我有功能

var checkTokenIsExpired = function(name, token, response) {
LoginToken.find( { name: name, series: token }, function(error, info){
                console.log("info: ", info[0]['expire']);
                if (error) {
                    // response.send("error: %s}", error);
                    response(error);
                }
                if (info.length > 0) {      
                    var expire = new String(info[0]['expire']);
                    // expire = expire.substr(0,26);    
                    var date = new Date(expire);
                    if (date >= new Date()) {                       
                        // response.send("{info: success" );
                        response("success");
                    }
                    else{
                        // response.send("error: token-has-expired");
                        response("token-has-expired");
                    }   
                    console.log("Response: ", info);
                }
                else {
                    response(null);
                }
            } );
}
检查令牌是否过期?它将返回一个字符串

我在这里调用这个函数

    exports.updateAccount = function(newData, callback)
{
    Accounts.find({name:newData.body.name}, function(err, docs){
        if (err) {
            callback.send('{error: ' + String(err) + "}");
        }
        if (docs.length==0 || !docs) {
            callback.send("{error: NULL }");
        }
        else {
            checkTokenIsExpired(newData.body.name, newData.body.token, function(error, info){
            if (error){
                        callback.send("{error: " + error + "}");
            // I want to get info here      }               
            console.log("check token: ", info);
            // check info of token is expired or not
            if (info!=null && info!="token-has-expired") {
                var updateString = "";
                if (newData.body.screen_name){
                    Accounts.update( {'name': newData.body.name}, 
                            {
                                "screen_name" : newData.body.screen_name
                            },
                            { 'upsert' : true },
                            function (err, numberAffected, raw) {
                              if (err) return handleError(err);

                            });
                }
                if (newData.body.email){
                    Accounts.update( {'name': newData.body.name}, 
                            {                               
                                "email": newData.body.email
                            },
                            { 'upsert' : true },
                            function (err, numberAffected, raw) {
                              if (err) return handleError(err);

                            });
                }
                if (newData.body.password == ''){


                }   else{
                    var password = encodePassword(newData.body.password, docs[0]['salt']);                  
                    Accounts.update( {'name': newData.body.name}, 
                            {
                                "hassedPass" : password,                                
                            },
                            { 'upsert' : true },
                            function (err, numberAffected, raw) {
                              if (err) return handleError(err);

                            });

                }               


            }
        });

        }

我想在调用checkTokenIsExpired时获取信息,但是当我
console.log(“info”,info)
返回未定义的信息时。

在checkTokenIsExpired中,您需要将信息传递给响应回调,否则它不在第二个代码的范围内

至少在你成功的情况下:

response("success", info);
不传递“success”,通常传递
null
表示没有错误。

我已经解决了这个问题

checkTokenIsExpired(newData.body.name, newData.body.token, function(error, info)
因为它需要1个参数,但我需要2个参数 将其更改为
checkTokenIsExpired(newData.body.name、newData.body.token、函数(info)

它将更正:D

但是如何获取我需要的信息我已经设置好了,但是我无法获得我想要的结果。checkTokenIsExpired的回调需要2个参数,因此当调用它时,需要在调用响应函数时传递一个值作为第二个参数(checkTokenIsExpired中该回调的名称)。这就是为什么它没有定义。