未捕获错误:模块名称" twilio"尚未加载

时间:2015-11-27 17:08:53

标签: javascript node.js requirejs twilio browserify

问题

当我希望通过Twilio发送预先完成的短信时,我在终端中收到与require方法相关的错误。我已经阅读了其他类似的StackOverflow问题,并且我尝试在我的index.html脚本部分中使用包含CDN for RequireJS,或者安装Browserify的npm,但我不确定为什么我和#39;我仍然收到错误。

错误

Uncaught Error: Module name "twilio" has not been loaded yet for context: _. Use require([])

scripts.js中

// Twilio Credentials
var accountSid = 'AC7*********';
var authToken = '6b6*********';

// Require the Twilio module and create a REST client
var client = require('twilio')(accountSid, authToken);

client.messages.create({
    to: "+16479933461",
    from: "+12044002143",
    body: "There is a new highest bidder. Visit {{websiteUrl}} to place another bid. All proceeds from the silent auction will go to the Samaritian House.",
    mediaUrl: "http://farm2.static.flickr.com/1075/1404618563_3ed9a44a3a.jpg",
}, function(err, message) {
    console.log(message.sid);
});

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

根据RequireJS errors page,当像这样使用RequireJS时,你应该使用异步加载方法,如下所示:

// Twilio Credentials
var accountSid = 'AC7*********';
var authToken = '6b6*********';

// Require the Twilio module and create a REST client
require(['twilio'], function(twilio){
  var client = twilio(accountSid, authToken);

  client.messages.create({
      to: "+16479933461",
      from: "+12044002143",
      body: "There is a new highest bidder. Visit {{websiteUrl}} to place another bid. All proceeds from the silent auction will go to the Samaritian House.",
      mediaUrl: "http://farm2.static.flickr.com/1075/1404618563_3ed9a44a3a.jpg",
  }, function(err, message) {
      console.log(message.sid);
  });
});

如果这是在终端,我可以问你为什么要使用RequireJS吗? Node.js内置了require并且同步。

我想知道您是否正在尝试在前端使用Twilio模块?如果是这样,您就不应该公开可能用于滥用帐户的帐户凭据。在服务器上执行Twilio API请求会更好,更安全。这就是Node.js模块的用途。