метеорные методы на сервере не вызываются

1

Я разрабатываю приложение метеоритов. Он работал нормально, но из ниоткуда возникла странная ошибка. У меня есть файл под папкой сервера, где я определил все мои методы метеор. Я вызываю их с помощью 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

Я верю, что у меня есть очень тривиальная ошибка. Любая помощь будет оценена.

Спасибо!

  • 2
    Я помещаю console.log, чтобы проверить поток кода, а 'sendSMS' на стороне сервера даже не вызывается.
  • 0
    Meteor.method ли вы показать нам, как, где вы объявили заявление Meteor.method ? также проверьте, нет ли ошибок в консоли браузера.
Показать ещё 1 комментарий
Теги:
meteor
cordova

1 ответ

1
Лучший ответ

Поэтому я запустил приложение на другой машине (ПК). Там все прекрасно. Проблема была в версии sdk. Я удалил свои предыдущие версии sdk и переустановил их. Теперь работать отлично

Ещё вопросы

Сообщество Overcoder
Наверх
Меню