[英]NodeJs undefined is not a function
我正在使用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;
然后在我的主文件中調用測試功能
call.hangup.test(number, connection, validator);
但我在控制台中收到以下錯誤代碼:
var result = self.searching(leadid, mysql, validator);
^
TypeError: undefined is not a function
我該如何解決? 為什么會這樣呢?
您this
引用(分配給self variable
)指向test function
而測試功能沒有名為searching
的功能。這就是為什么會出現此錯誤的原因。 您應該以這種方式調用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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.