使用AJAX调用Node.js文件发送短信

时间:2017-09-05 12:42:29

标签: javascript node.js ajax twilio

我是Node.js的新手,但我知道它是在服务器端。当我在终端中运行我的app.js文件时,它会发送短信,但我最终要做的是让用户完成表单,按下按钮后,向他们发送短信以验证他们的提交。我正在使用Twilio服务来帮助实现这一目标。它目前没有按下按钮发送消息。

这是我的app.js文件:

var accountSid = process.env.TWILIO_ACCOUNT_SID;
var authToken = process.env.TWILIO_AUTH_TOKEN;
var client = require('twilio')(accountSid, authToken);

app.get('/testtwilio', function(req, res) {
  client.messages.create({
    to: "+1receivingNumber",
    from: "+myTwilioNumber",
    body: "Testing, testing, testing"
  }, function(err, message) {
    if (err) {
      console.log(err);
    } else {
      console.log(message.sid);
    }
  });
})  

我的Javascript文件:

$('#buttons').on('click', function(e) {
  $.ajax({
    type: 'POST',
    url: '/testtwilio',
    data: {
      "To": userCellPhone,
      "From": "+1myTwilioNumber",
      "Body": "Ahoy! Testing"
    },
    beforeSend: function(xhr) {
      ...
    },
    success: function(data) {
      console.log(data);
    },
    error: function(data) {
      console.log(data);
    }
  });
});

最后,我的html按钮:

<button type="submit" id="buttons" class="buttons">SUBMIT</button>

老实说,我甚至不确定这是可能的,但我一直在寻找,并且无法找到任何直接的解决方案。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:5)

您的app变量未定义。如果您想使用express框架,就像您已经遵循的教程一样,您需要在app.js中注册它,如下所示:

var express = require('express');
var app = express();

结合关于POST的答案/评论,这应该会在你的路上看到你。

的Nb。您需要在节点模块中安装express。从根目录中的命令行:

npm install --save express

答案 1 :(得分:3)

nodeJs route需要GET。但是你的ajax会发出POST请求。尝试:

app.post('/testtwilio', ...