【问题标题】:Reference Error when using Send Grid with my Angular2 Typescript app将发送网格与我的 Angular2 Typescript 应用程序一起使用时出现参考错误
【发布时间】:2016-01-05 11:14:26
【问题描述】:

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

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

"ReferenceError: 要求未定义"

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

  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);
  });

【问题讨论】:

  • 这与 Angular 有什么关系?
  • 我在我的 Angular 2 项目中使用了发送网格,你知道如何让发送网格在这个环境中工作吗?

标签: javascript sendgrid


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    require() 仅是服务器端(即节点),它不存在于客户端/浏览器 javascript 中。例如,确保您通过 SystemJS 或 Webpack 运行 Angular2 应用程序。

    【讨论】:

    • 嗨蒂姆,对于我的应用程序,我没有服务器端。我正在使用 SystemJS。是否可以仅在客户端发送网格工作?
    • 这是我从中获得示例的地方:npmjs.com/package/sendgrid - 但我没有节点 js。还有其他想法吗?
    • 假设是这样。尝试import * as sendgrid from ('sendgrid') 并在初始 html 中包含 sendgrid js 依赖项。
    • 导入是什么?我在哪里可以得到发送网格 js?
    • require 替换为上面的import。运行npm i sendgrid --save将其安装到您的node_modules目录中,js就会在那里。
    猜你喜欢
    • 1970-01-01
    • 2017-02-10
    • 2020-10-26
    • 1970-01-01
    • 2013-07-26
    • 2021-05-19
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多