我有一项任务依赖于 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/