javascript - NODE.js - 如何在其他方法中使用方法

标签 javascript node.js

我想使用同一个类中其他方法中的方法来计算数据库中的一些数据,如下所示,但我只得到 错误

[TypeError: Object #<Query> has no method 'methodMaxLct']"
 exports.UserClass = function() {
 this.methodMaxLct = function(lct, callback) {
   var counting = Math.ceil(Math.pow(1.15, (lct - 1)) * 10) * 10;
   callback(counting);
   this.methodGetData = function(idu, callback) {
     connection = mysql.createConnection(dbconfig);
     connection.query(dataUserResources, [idu], function(err, results, fields) {
       if (err) throw err;
       if (results.length == 0) {
         callback = 0;
       } else {
         for (var i in results) {
           var dataU = results[i];
         }
         dataU.enMax = 30;
         var ap = this.methodMaxLct(dataU.lct, function(answer) {
           dataU.lctMax = answer;
         });
         callback(dataU);
       }
       connection.end();
     });
   };
 };

任何人都可以给我提示或相同的线索如何以正确的方式做到这一点?

最佳答案

像这样尝试一下。您必须将 this 对象存储到变量中,以便可以在内部函数中使用它。 this 根据执行上下文而不同。

exports.UserClass = function() {
 var self = this;
 this.methodMaxLct = function(lct, callback) {
   var counting = Math.ceil(Math.pow(1.15, (lct - 1)) * 10) * 10;
   callback(counting);
   this.methodGetData = function(idu, callback) {
     connection = mysql.createConnection(dbconfig);
     connection.query(dataUserResources, [idu], function(err, results, fields) {
       if (err) throw err;
       if (results.length == 0) {
         callback = 0;
       } else {
         for (var i in results) {
           var dataU = results[i];
         }
         dataU.enMax = 30;
         var ap = self.methodMaxLct(dataU.lct, function(answer) {
           dataU.lctMax = answer;
         });
         callback(dataU);
       }
       connection.end();
     });
   };
 };

关于javascript - NODE.js - 如何在其他方法中使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015417/

相关文章:

javascript - toLocaleString() 在不同浏览器中的不一致行为

javascript - 获取span的内容

javascript - Cocoa 对于商业 Mac 桌面应用程序安全吗?

node.js - Crytip Node.js 错误

用于 socket.io 服务器的 Node.js 客户端

node.js - 部署到 PAAS/Modulus 时如何忽略 npm 脚本

javascript - 如何立即停止设置为间隔的函数

javascript - 将参数数组从node.js传递给CasperJS

node.js - yarn : How to specify the path of the package. json 文件

javascript - 是否可以从firebase云函数node.js更新firestore中的map类型字段?