Node.js回调失败 - 函数通过回调传递变量

时间:2014-01-18 06:30:57

标签: node.js callback

我是Node.js的新手,我正在努力让回调工作。我有以下函数调用:

memberPhotoPath(dbResults[i].userid2,dbResults[i].userid2Gender,'small',dbResults[i].userid2PhotoName,dbResults[i].userid2PhotoVerified,false,function(path) {
    console.log(path);    
});

以及以下功能:

function memberPhotoPath(userid,gender,photoSize,photoName,photoVerification,border,callback) {
    if(photoVerification) {
        callback('http://www.datingimages.co/online-dating/dating-photos/'+userid+'/'+userid+'-'+photoSize+'-'+photoName+'.jpg');
    }else{
        if(border) {
            if(gender) {
                callback('http://www.datingimages.co/online-dating/dating-website/default-female-image-'+photoSize+'.png');
            }else{
                callback('http://www.datingimages.co/online-dating/dating-website/default-male-image-'+photoSize+'.png');
            }
        }else{
            if(gender) {
                callback('http://www.datingimages.co/online-dating/dating-website/default-female-image-'+photoSize+'-noborder.png');
            }else{
                callback('http://www.datingimages.co/online-dating/dating-website/default-male-image-'+photoSize+'-noborder.png');
            }
        }
    }
}

我在Node.js中收到以下错误:

TypeError: undefined is not a function
    at memberPhotoPath (/etc/node/index.js:315:5)
    at /etc/node/index.js:223:21
    at memberPhotoPath (/etc/node/index.js:315:5)
    at /etc/node/index.js:214:9
    at Array.forEach (native)
    at /etc/node/index.js:208:34
    at Query._callback (/etc/node/index.js:287:9)
    at Query.Sequence.end (/usr/lib/node_modules/mysql/lib/protocol/sequences/Sequence.js:75:24)
    at Query._handleFinalResultPacket (/usr/lib/node_modules/mysql/lib/protocol/sequences/Query.js:143:8)
    at Query.EofPacket (/usr/lib/node_modules/mysql/lib/protocol/sequences/Query.js:127:8)

关于我做错的任何建议?

三江源

1 个答案:

答案 0 :(得分:0)

我刚刚在chrome控制台中运行此代码,它运行正常。错误必须在某个地方。使用异步函数有时无法跟踪确切的堆栈跟踪。我建议你自己动手并再次查看其他代码