如何在 Nodejs 中导出 class 中的变量
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
我的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");
我通过将它添加到 loginHandler.js
上的环境变量来解决它
process.env.MERCHANT_ID = req.params.merchantId
然后在 responseHandler.js,我访问了那个变量
merchantId : process.env.MERCHANT_ID
这是我的文件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
我的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");
我通过将它添加到 loginHandler.js
上的环境变量来解决它process.env.MERCHANT_ID = req.params.merchantId
然后在 responseHandler.js,我访问了那个变量
merchantId : process.env.MERCHANT_ID