Node.js 如何使nodejs中的模块非静态?
我有一个带有节点js和静态角度文件的应用程序。我需要nodejs检查包含授权令牌的请求头。因此,我有一个模块,它检查令牌是否有效,如果是这样,用户可以访问以下所有get方法。 这在app.use(检查令牌的模块)中运行良好 但我还需要用户的电子邮件地址,它写在解码令牌中。必须在Angular应用程序中访问此电子邮件地址。为此,我植入了一个get方法,可以被Angular应用程序调用并发送回电子邮件 我的问题是,如何以安全的方式获取电子邮件地址。目前,我已经编辑了该模块并添加了另一个函数。模块的伪代码: Var email=“”; Module.exports=verfiyToken(请求、rsp、下一个){Node.js 如何使nodejs中的模块非静态?,node.js,angular,module,Node.js,Angular,Module,我有一个带有节点js和静态角度文件的应用程序。我需要nodejs检查包含授权令牌的请求头。因此,我有一个模块,它检查令牌是否有效,如果是这样,用户可以访问以下所有get方法。 这在app.use(检查令牌的模块)中运行良好 但我还需要用户的电子邮件地址,它写在解码令牌中。必须在Angular应用程序中访问此电子邮件地址。为此,我植入了一个get方法,可以被Angular应用程序调用并发送回电子邮件 我的问题是,如何以安全的方式获取电子邮件地址。目前,我已经编辑了该模块并添加了另一个函数。模块的伪
- 获取req参数的标头
- 检查令牌
- 如果令牌有效,则设置email=realEmailFromToken
//此处声明的任何内容都是静态的,在所有模块中都可见
const moduleGlobalStatic='此值由所有人共享';
导出=模块。导出=函数(a、b、c){
//这里声明的内容是特定于调用的
让invocationSpecificStatic=`这对每个调用都是唯一的-a:${a},b:${b},c:${c}`;
功能剂量测定法(x,y,z){
//用a,b,c,x,y和z做点什么
}
返回剂量测定法;
}
用法很简单:
const doSomething1=require('sample-module')(1,2,3);
常数doSomething2=require('sample-module')('alpha','bravo','charlie')
doSomething()
已关闭上述不同范围中可见的变量
和doSomething1
共享doSomething2
moduleGlobalStatic
和doSomething2
分别为doSomething2
、a
和b
以及c
获取各自的值invocationSpecificStatic
- 每次调用
或doSomething1
时,它们都会获得自己的doSomething2
、x
和y
副本。但是,它们的z
、a
、b
和c
变量在每次调用时都是不变的(除非它们在执行期间修改)invocationSpecificStatic
//Email has the right value if the function verifyToken was successful once. That is always the case, because if not, then getEmail can never be called.
Return email;