我正在使用NodeJs运行这段代码--这是我的自定义模块
call = {};
call.hangup = {
searching: function(number, mysql, validator){
this.number = number;
this.mysql = mysql;
this.validator = validator;
var query = "{sql...}";
try
{
mysql.query(query, function(err, rows, fields) {
if (err) throw err;
if(!validator.isNull(rows))
{
return rows.leadid;
}else {
return false;
}
});
}catch(error)
{
console.log(error);
}
},
test: function(number, mysql, validator){
var self = this;
this.number = number;
this.mysql = mysql;
this.validator = validator;
var result = self.searching(number, mysql, validator);
console.log(result);
}
};
module.exports = call;然后在我的主文件中调用test函数
call.hangup.test(number, connection, validator);但是我在我的控制台中得到了这个错误代码:
var result = self.searching(leadid, mysql, validator);
^
TypeError: undefined is not a function我怎么才能修好它?为什么会发生这种事?
发布于 2015-10-01 06:57:34
您的this引用(分配给self variable)指向test function,而测试函数没有一个名为searching.That的函数,这就是为什么会出现此错误。您应该以这种方式调用searching函数call.hangup.searching
call = {};
call.hangup = {
searching: function(number, mysql, validator){
this.number = number;
this.mysql = mysql;
this.validator = validator;
var query = "{sql...}";
try
{
mysql.query(query, function(err, rows, fields) {
if (err) throw err;
if(!validator.isNull(rows))
{
return rows.leadid;
}else {
return false;
}
});
}catch(error)
{
console.log(error);
}
},
test: function(number, mysql, validator){
this.number = number;
this.mysql = mysql;
this.validator = validator;
var result = call.hangup.searching(number, mysql, validator);
console.log(result);
}
};
module.exports = call;编辑:您也可以将self变量分配给call.hangup
test: function(number, mysql, validator){
var self = call.hangup;
this.number = number;
this.mysql = mysql;
this.validator = validator;
var result = self.searching(number, mysql, validator);
console.log(result);
}https://stackoverflow.com/questions/32881177
复制相似问题