【问题标题】:meteor methods on server not being called服务器上的流星方法未被调用
【发布时间】:2023-04-08 12:02:01
【问题描述】:

我正在开发一个流星应用程序。它工作正常,但突然出现了一个奇怪的错误。我在服务器文件夹下有一个文件,我在其中定义了所有流星方法。我从客户端使用 Meteor.call 给他们打电话。

问题是我不能再调用我的服务器方法了。

以下代码昨天运行良好:

HTML 代码:

<section class="body_section">
        <form>
          <div class="container">

            <div class="box"> <h2 class="verify_number">Verify your phone number</h2></div>
            <div class="box"> <p class="center_txt"> We will send an SMS message to verify your phone number. </p></div>
            <div class="box"> <span class="isdcode">+ 91</span><input myattr="mobileNo" type="tel" class="input-txt signin" id="signin" name="mobNumber" placeholder="Mobile Number" pattern="[6789][0-9]{9}" onKeyUp="numbersonly()" value ='' required>
            </div>
          </div>
          <footer class="signformFooter">
            <div class="container">
              <input type="submit" class="next_btn" id="verifyNumber" value="NEXT"/>
            </div>
          </footer>
        </form>
    </section>

对应js事件代码:

'submit form' : function(event){
  event.preventDefault();

  var numb = '+91' + event.target.mobNumber.value;

 if(confirm('OTP would be sent to ' + numb)){
    Meteor.call("sendSMS", numb, function(error, res){
      if(!error){ 
        Router.go('verifyMobile',{
          mobNo : numb
        });
      }
      else
        alert(error)
    });
}
}

服务器端代码:

sendSMS : function(mobile){
    var otp = UserOTP.findOne({mobNo : mobile});
    if(otp == undefined){
        otp = Math.floor(Math.random()*9000) + 1000;
        UserOTP.insert({
            mobNo : mobile,
            OTP : otp,
            createdAt : new Date()
        })  
    }
    else
        otp = otp.OTP;
    var msg91 = require("msg91")("", "", "" );
    var message = '4 Digit Verification Code for kNOwDoubt ' + otp;

    msg91.send(mobile, message, function(err, response){
        if(err){
            console.log('otp not sent to : ' + mobile + " " + err);

        }
        else{
            console.log('otp ' + otp + ' sent to ' + mobile + ' with transactional route ' + response);

        }
    });


    return true;
},

奇怪的是,该应用在网络浏览器上运行得非常好。只有当我在 android 上运行应用程序时才会出现问题(尚未在 ios 上测试)。

流星版本:1.5

在android上运行的命令:sudo -E meteor run android-device --allow-superuser --settings server/settings.json

我相信我在某处有一个非常微不足道的错误。任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 我放了console.log来检查代码流,甚至没有调用服务器端的'sendSMS'。
  • 您能告诉我们如何,您在哪里声明了Meteor.method 声明?还要检查浏览器控制台上是否有任何错误。
  • 所以我在另一台机器(PC)上运行了该应用程序。它在那里运行良好。问题出在 sdk 版本上。我删除了我以前的 sdk 版本并重新安装了它们。现在工作正常

标签: javascript android cordova meteor


【解决方案1】:

所以我在另一台机器(PC)上运行了该应用程序。它在那里运行良好。问题出在 sdk 版本上。我删除了我以前的 sdk 版本并重新安装了它们。现在工作正常

【讨论】:

    猜你喜欢
    • 2018-05-03
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2014-01-24
    • 2013-10-04
    • 1970-01-01
    相关资源
    最近更新 更多