javascript - 在 nodejs 上访问 function.caller

标签 javascript node.js

我有一项任务依赖于 function.caller 来完整性检查调用者是否获得授权。

根据这个 url,所有主流浏览器都支持 caller ...并且我的所有单元测试都通过了:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller

但是,nodejs 拒绝所有访问 function.caller 的尝试(将其报告为 null)。

我愿意接受让这个在 nodejs 上工作的建议...我不希望这个框架只在浏览器上工作。

谢谢!

最佳答案

Caller-id npm 包使它变得简单易行:https://www.npmjs.com/package/caller-id 来自文档:

var callerId = require('caller-id');

// 1. Function calling another function
function foo() {
    bar();
}
function bar() {
    var caller = callerId.getData();
    /*
    caller = {
        typeName: 'Object',
        functionName: 'foo',
        filePath: '/path/of/this/file.js',
        lineNumber: 5,
        topLevelFlag: true,
        nativeFlag: false,
        evalFlag: false
    }
    */
}

关于javascript - 在 nodejs 上访问 function.caller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25779491/

相关文章:

javascript - Node.js 中如何解析自定义模块的绝对或相对文件路径?

node.js - 使用 Express 和 Mongoose 更新嵌套数组

node.js - 如何在 inversify 中注入(inject)异步依赖?

javascript - Javascript 中的原型(prototype)链未更新

javascript - React 在第一个方法触发后不改变状态

javascript - 粘性导航,idk 发生了什么 :\

javascript - Node : Sending html data from one js to another

node.js - Upstart env 节没有为 Node.js 应用程序设置环境变量(如 NODE_ENV)

javascript - 如何在大字体上制作内阴影效果?

javascript - ejs 的问题(data.forEach 不是函数)!