SendGrid NodeJS-Client.request()不是函数

时间:2018-09-20 14:21:30

标签: node.js typescript sendgrid

我试图创建一个用户,然后通过sendgrid api将其添加到列表中,但是我一直收到错误消息,说Client.request不是一个函数,但显然是一个函数。

function createNewUser(list: number) {
    return Client.request({
      method: 'POST',
      url: '/v3/contactdb/recipients',
      body: JSON.stringify([
        {
          email: format.email,
          first_name: format.name.split(' ')[0] || '',
          last_name: format.name.split(' ')[1] || ''
        }
      ])
    })
      .then(newUsers => {
        const ids = (<any>newUsers).persisted_recipients;
        return ids.forEach(async user => {
          console.log(list, user);
          Client.request({
            method: 'POST',
            url: `/v3/contactdb/lists/%7B${list}%7D/recipients/%7B${
              user.id
            }%7D`,
            body: 'null'
          })
            .then(success => {
              console.log(`${user.id} as been added to ${list}`);
              return res.status(200).send('OK');
            })
            .catch(err => {
              console.log(err);
              return res.status(500).send(err);
            });
        });
      })
      .catch(err => res.status(500).send(err));
  }

1 个答案:

答案 0 :(得分:0)

即使我遇到了同样的问题,花了半个小时才知道,我犯了一个愚蠢的错误,也许这可以为您提供帮助。

您声明客户的方式非常重要,可能就像我赶时间一样,我在声明和要求变量时犯了一个愚蠢的错误。

const client = require('@sendgrid/mail'); 

应该是const client = require('@ sendgrid / client)

Please have a look here enter image description here