将 Sendgrid 与我的 Angular 2 Typescript 应用程序一起使用时出现参考错误

Reference Error when using Send Grid with my Angular2 Typescript app

我正在为我的 Angular 2 Typescript 应用程序使用 npm install sendgrid。

我已经安装了 sendgrid 和软件包,但我一直收到控制台错误:

"ReferenceError: require is not defined"

这是我的代码示例(出于显而易见的原因,我删除了密钥):

  var sendgrid_api_key = "key goes here";

  var sendgrid  = require('sendgrid')(sendgrid_api_key);

  sendgrid.send({
    to:       'mark@gmail.com',
    from:     'support@gmail.com',
    subject:  'Hello Mark Test',
    text:     'My first email through SendGrid.'
  }, function(err, json) {
    if (err) { return console.error(err); }
      console.log(json);
  });

require() 只是服务器端(即 Node),它在 client/browser javascript 中不存在。例如,确保您是 运行 通过 SystemJS 或 Webpack 使用的 Angular2 应用程序。

您不能在 client-side 代码中使用 SendGrid。它本质上是不安全的,因为任何人都可以查看代码并获取您的凭据。