【问题标题】:How to work out with sending sms using nexmo in nodejs?如何在nodejs中使用nexmo发送短信?
【发布时间】:2020-11-12 20:16:07
【问题描述】:

这是路线代码:

router.get('/compose/:ID', function(req, res, next) {
var random = Math.floor((Math.random() * 1000000) + 1);
console.log("random = " + random);
   res.render('compose', { random: random, Id:req.params.ID });
})
.post(function(req, res, next) {

var to = '917985754084';
var from = 'GrumpyText';
var text = req.body.OTP;

console.log(text);

nexmo.message.sendSms(from, to, text, function(err,success){
  if(success)
  console.log("SMS sent successfully!");
  else {
    console.log("error");
  }
});
});

这是车把代码:

<main role="main" class="container">
  <div class="jumbotron">
    <h1>List of Contacts</h1>
    <table class="table table-striped">
  <thead>
    <tr>
      <th scope="col"></th>
      <th scope="col"></th>
    </tr>
  </thead>
  <tbody>
    <form method="post"  enctype="multipart/form-data">
    <tr>
      <td><input type="text" name="OTP" class="form-control" value="Hi. Your OTP is : {{random}}"></td>
      <td></td>
    </tr>
    <tr>
      <td><button type="submit" class="btn btn-lg btn-primary btn-block">Submit</button>
</td>
    </tr>
  </form>
  </tbody>
</table>
  </div>
</main>

它来到了路线,但控制台没有打印“文本”。又名console.log(text) 表示req.body.OTP 没有打印任何东西。早些时候它打印未定义。 您能否纠正它可能卡在哪里?

【问题讨论】:

  • 而且我已经在使用 body-parser 包并将它们全局包含在 app.js 中。因此,body-parser 不会另外出现错误。
  • 发送短信的代码看起来没问题,问题似乎在req.body.OTP附近。您如何从应用程序发送参数?
  • 它已经在那里了。检查 route.get()

标签: node.js handlebars.js vonage


【解决方案1】:

您遇到的问题是 body-parser 无法处理 multipart/form-data

有多种选择,但其中之一是multer

\* add these for multi-part*\
var multer  = require('multer')
var upload = multer();
\* other code *\
router
  .get('/compose/:ID', function (req, res, next) {
    var random = Math.floor(Math.random() * 1000000 + 1);
    console.log('random = ' + random);
    res.render('compose', { random: random, Id: req.params.ID });
  })
  .post('/compose/:ID', upload.none(), function (req, res, next) {
    var to = '917985754084';
    var from = 'GrumpyText';
    var text = req.body.OTP;

    nexmo.message.sendSms(from, to, text, function (err, success) {
      if (success) console.log('SMS sent successfully!');
      else {
        console.log('error');
      }
    });
  });

【讨论】:

  • 还有n​​exmo我收到消息:短信发送成功!但实际上我没有收到任何消息。为什么?确切的nexmo 配置是什么?是否需要发送该私钥和秘密?如果是,那么在那些地方放什么?
  • 这种情况下的成功是api调用正确完成。如果不记录来自 api 的响应,就无法知道问题所在。如果您使用 apikey 和 secret 初始化 Nexmo 对象,那么您只需要运行 send SMS 方法即可。
  • 最初的问题,这是正确的答案吗?至少它已经越过了那部分吗?
猜你喜欢
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
  • 2017-12-15
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多