问题描述
这是我的文件loginHandler.js
class LoginHandler {
merchantId = '';
returnURLForIframe(req,res) {
merchantId = req.params.merchantId;
}
}
module.exports = new LoginHandler();
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");