如何导出Node.js中的类中的变量

问题描述

这是我的文件loginHandler.js

class LoginHandler {
 merchantId = '';
    returnURLForIframe(req,res) {
      merchantId = req.params.merchantId;
    }  
}

module.exports = new LoginHandler();

我想访问另一个文件上的变量merchantId

const loginHandler  = require('./loginHandler')
class ResponseHandler {
    
    getResponseFromCOMM(options,token,res){
        console.log(loginHandler.merchantId)
    }
}

但是商人ID未定义。你能告诉我我在做什么错吗?

在这里您可以看到Glitch = https://glitch.com/edit/#!/turquoise-spiky-chrysanthemum

上的代码

解决方法

我的loginhanderler.js

 b = df[df.columns].Bus-Signalname[i]

我的index.js

class LoginHandler {
  merchantId = '';
  returnURLForIframe(req,res) {
    this.merchantId = req.params.merchantId;
  }
}

module.exports = new LoginHandler();
,

我通过将其添加到loginHandler.js的环境变量中解决了该问题

process.env.MERCHANT_ID = req.params.merchantId

然后在responseHandler.js上,我访问了该变量

merchantId : process.env.MERCHANT_ID

,

您可以将其定义为对象键

class LoginHandler {
  constructor() {
    this.merchantId = '';     
  }

    returnURLForIframe(req,res) {
      this.merchantId = req.params.merchantId;
    }  
}
,

新的LoginHandler

class LoginHandler {
    merchantId = "";
  returnURLForIframe(req,res) {
    this.merchantId = req.params.merchantId;
  }
}

module.exports = new LoginHandler();

为了将来的参考(也为我自己)

检测错误是什么令人困惑,所以对我来说,更改变量名称很有帮助:

class LoginHandler {
    other= "";
  returnURLForIframe(req,res) {
    other = req.params.merchantId;
  }
}

module.exports = new LoginHandler();

然后我看到错误是ReferenceError: other is not defined并可以解决。

此外,除了记录外,还需要调用returnURLForIframe来查看错误

const loginHandler = require("./loginHandler");
class ResponseHandler {
  getResponseFromCOMM(options,token,res) {
    loginHandler.returnURLForIframe({ params: { merchantId: "lalala" } });
    console.log(loginHandler);
  }
}
let rh = new ResponseHandler();
rh.getResponseFromCOMM("foo","bar","baz");