javascript - JS构造函数看不到变量

标签 javascript node.js typescript firebase twilio

我正在尝试通过 TypeScript 在 Firebase 函数上使用 Twilio 访问 token 。

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:无法设置未定义的属性“accountSid”

最佳答案

查看源码->

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..

关于javascript - JS构造函数看不到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50321112/

相关文章:

php/mysql 数据库更新后的 Javascript 弹出窗口

javascript - 可见性的 CSS 问题

React/Redux 中的 Javascript 函数语法

json - Angular 6 HTTPClient : Request fired once, 收到 2 个响应

javascript - 格式化 ngb-timepicker,使其返回为字符串而不是对象

javascript - 将 "this"绑定(bind)到 TypeScript Lambda

javascript - 另一种石头剪刀布

javascript - 如何在 Grunt 中使用 stylelint?

node.js - 使用setInterval对node js执行GET请求?

angular - 按 bool 值排序