Azure Node.Js SendGrid没有方法'send'

时间:2015-09-24 10:49:12

标签: node.js azure sendgrid

我正在使用带有Node.Js的Azure移动服务,我需要使用SendGrid发送电子邮件,但我收到了

TypeError:对象#在exports.post没有方法'send'

错误消息。

这是我的代码:

exports.post = function(request, response) {
  var user = '<user>';
  var key = '<key>';
  var sendgrid = require('sendgrid');

  sendgrid.api_user = user;
  sendgrid.api_key = key;

  var email = new sendgrid.Email({
      to: 'my_email@mail.com',
      from: 'test@sendgrid.com',
      subject: 'This is the subject.',
      text: 'This is the body.'
  });

  sendgrid.send(email, function (err, json) {
      if (err) { return console.error(err); }
      console.log(json);
  });

  request.respond(200);}

为什么Azure SendGrid失败?与Node.Js一起安装的版本不正确?如何使用npm(节点包管理器)访问Node.Js以重新安装SendGrid包?或者出了什么问题? (SendGrid已经有“发送”方法,您可以通过GitHub进行检查。)

非常感谢任何帮助! 桑德

1 个答案:

答案 0 :(得分:1)

这是解决方案。 对sendgrid的引用不是对象。我必须创建一个SendGrid对象,它有一个“发送”方法。

正确的代码是:

exports.post = function(request, response) {

var user = '<user>';
var key = '<key>';
var sendgridReference = require('sendgrid');

var sendgridObject = new sendgridReference.SendGrid();

sendgridObject.api_user = user;
sendgridObject.api_key = key;

var email = new sendgridReference.Email({
    to: 'my_email@mail.com',
    from: 'test@sendgrid.com',
    subject: 'This is the subject.',
    text: 'This is the body.'
});

sendgridObject.send(email, function (err, json) {
    if (err) { return console.error(err); }
    console.log(json);
});

request.respond(200);

};