Sendgrid-nodejs: TypeError: Cannot read property 'client' of undefined

Created on 8 Mar 2019  路  2Comments  路  Source: sendgrid/sendgrid-nodejs

Issue Summary

I'm trying to send an email from my backend. When I get to the sendgrid.send-function, my server crashes with the following:

events.js:174
      throw er; // Unhandled 'error' event
      ^

TypeError: Cannot read property 'client' of undefined
    at setApiKey (/home/jeremy/Documents/Workspace/assetregister-server/node_modules/@sendgrid/mail/src/classes/mail-service.js:35:10)
    at /home/jeremy/Documents/Workspace/assetregister-server/dist/models/user.js:184:27
    at nextTask (/home/jeremy/Documents/Workspace/assetregister-server/node_modules/async/dist/async.js:5324:14)
    at next (/home/jeremy/Documents/Workspace/assetregister-server/node_modules/async/dist/async.js:5331:9)
    at /home/jeremy/Documents/Workspace/assetregister-server/node_modules/async/dist/async.js:969:16
    at /home/jeremy/Documents/Workspace/assetregister-server/dist/models/user.js:176:11
    at /home/jeremy/Documents/Workspace/assetregister-server/node_modules/mongoose/lib/model.js:4698:16
    at /home/jeremy/Documents/Workspace/assetregister-server/node_modules/mongoose/lib/utils.js:263:16
    at model.$__save.error (/home/jeremy/Documents/Workspace/assetregister-server/node_modules/mongoose/lib/model.js:479:7)
    at /home/jeremy/Documents/Workspace/assetregister-server/node_modules/kareem/index.js:315:21
    at next (/home/jeremy/Documents/Workspace/assetregister-server/node_modules/kareem/index.js:209:27)
    at /home/jeremy/Documents/Workspace/assetregister-server/node_modules/kareem/index.js:182:9
    at process.nextTick (/home/jeremy/Documents/Workspace/assetregister-server/node_modules/kareem/index.js:499:38)
    at process._tickCallback (internal/process/next_tick.js:61:11)

Steps to Reproduce

  1. Install @sendgrid/[email protected]
  2. Import setApiKey and send from @sendgrid/mail
  3. Call setApiKey with the api key parameter
  4. Call send with the message object

installed the sendgrid-nodejs npm package
Imported var SendGrid = require('sendgrid-nodejs').SendGrid; in my class
Set var sendgrid = new SendGrid("sendgrid username here", "api key here");

And then running:

import { setApiKey, send } from '@sendgrid/mail';

setApiKey(config.mail_server_settings.api_key)

const msg = {
  to: user.email,
  from: {
    name: 'The Sengrid Mailer',
    email: '[email protected]',
  },
  subject: 'New mail for you !',
  text: 'This is my message !',
};

send(msg, function(err, data) {
  if (err) {
    console.error(err);
  };

Technical details:

  • Node.js Version: 10.15.1
unknown or a waiting for feedback question

Most helpful comment

I had the following giving me the same error in my TS code:

import { setApiKey } from '@sendgrid/mail';
//..
setApiKey(config.mail_server_settings.api_key)

I was able to fix this in Typescript by just doing the following:

import * as sendgrid from '@sendgrid/mail';
//...
sendgrid.setApiKey(apiKey);

All 2 comments

Hello @darkterra,

What happens when you run this code?

With Best Regards,

Elmer

I had the following giving me the same error in my TS code:

import { setApiKey } from '@sendgrid/mail';
//..
setApiKey(config.mail_server_settings.api_key)

I was able to fix this in Typescript by just doing the following:

import * as sendgrid from '@sendgrid/mail';
//...
sendgrid.setApiKey(apiKey);
Was this page helpful?
0 / 5 - 0 ratings

Related issues

wooyah picture wooyah  路  4Comments

agostonbonomi picture agostonbonomi  路  3Comments

thidasapankaja picture thidasapankaja  路  4Comments

amlcodes picture amlcodes  路  4Comments

polkhovsky picture polkhovsky  路  3Comments