【问题标题】:JS constructor can not see the variableJS构造函数看不到变量
【发布时间】:2018-10-23 13:41:19
【问题描述】:

我正在尝试在带有 TypeScript 的 Firebase 函数上使用 Twilio 访问令牌。

export const returnToken = functions.https.onRequest((req, res) => {
  const twilioAccessToken = twilio.jwt.AccessToken;
  const envconf = functions.config();
  const twilioAccountSid = envconf.twilio.sid; //saved them on environment
  console.log(twilioAccountSid); //prints out fine
  console.log(typeof twilioAccountSid !== "undefined"); //returns true
  const twilioApiKey = envconf.twilio.apikey;
  console.log(twilioApiKey); //prints fine too
  const twilioApiSecret = envconf.twilio.apisecret;
  console.log("gonna make a token"); //prints 

  const token = twilioAccessToken( //here it says TypeError: Cannot set property 'accountSid' of undefined
    twilioAccountSid,
    twilioApiKey,
    twilioApiSecret
  )
  console.log("gonna make a grant");
  const grant = new twilioAccessToken.VideoGrant();
  token.addGrant(grant);
  grant.room = "someroom";
  token.identity = "someid";
  res.send(token.toJwt());
})

我得到一个 twilioAccessToken 构造函数的错误,它说 TypeError: Cannot set property 'accountSid' of undefined

【问题讨论】:

  • 在哪一行说详细点,我在你的代码中看不到accountSid

标签: javascript node.js typescript firebase twilio


【解决方案1】:

寻找源头->

function AccessToken(accountSid, keySid, secret, options) {
  if (!accountSid) { throw new Error('accountSid is required'); }
  if (!keySid) { throw new Error('keySid is required'); }
  if (!secret) { throw new Error('secret is required'); }
  options = options || {};
  this.accountSid = accountSid;

AccessToken 是一个构造函数,但你调用它就像一个普通函数..

const token = twilioAccessToken( 

你需要使用new

const token = new twilioAccessToken( 

正常的 Javascript 表示法是,如果函数以大写字母开头,则暗示它是构造函数。为了保持这个标准,我想说你还想将twilioAccessToken 重命名为TwilioAccessToken..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多