[英]How to export a variable which is in a class in Nodejs
這是我的文件 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)
}
}
但是merchantId 是未定義的。 你能告訴我我做錯了什么嗎?
在這里你可以看到 Glitch 上的代碼 = https://glitch.com/edit/#!/turquoise-spiky-chrysanthemum
我通過將它添加到 loginHandler.js 上的環境變量來解決它
process.env.MERCHANT_ID = req.params.merchantId
然后在 responseHandler.js 上,我訪問了那個變量
merchantId : process.env.MERCHANT_ID
我的 loginhanderler.js
class LoginHandler {
merchantId = '';
returnURLForIframe(req, res) {
this.merchantId = req.params.merchantId;
}
}
module.exports = new LoginHandler();
我的 index.js
let loginHandler = require('./loginhandler');
let req = {
params: {
merchantId: 'a test',
},
};
loginHandler.returnURLForIframe(req);
console.log(loginHandler.merchantId);
您可以將其定義為對象鍵
class LoginHandler {
constructor() {
this.merchantId = '';
}
returnURLForIframe(req, res) {
this.merchantId = req.params.merchantId;
}
}
新的登錄處理程序
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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.