我正在寻找一种记录节点应用程序操作顺序的方法。与堆栈跟踪类似,但专门用于调试方法链与错误。这样做的目的是避免向每个函数添加代码或显式地监听每个函数。有一种方法可以在ruby中做到这一点,但是在node上看不到任何解决方法。
我一直在寻找一种方法,可以在每次调用函数时利用低级节点事件(或添加侦听器),并记录传递给函数的函数名和参数。节点中是否存在类似的内容?还是现有的工具可能会做类似的事情?例如,无需在每个函数中添加代码,
var bar, baz, foo;
baz = function(b) {
return b * 2;
};
bar = function(a, b, c) {
return baz(a, b, c);
};
foo = function() {
return bar(1, 2, 3);
};
foo();
// calling foo() would log...
// foo called, returns from bar
// bar called with 1, 2, 3, returns from baz
// baz called with 2, returns 4
答案 0 :(得分:1)
使用javascript无法做到这一点,但是代码可以为您提供帮助。在javascript中,您可以将函数包装在另一个函数周围,这样可以帮助您进行调试,而不必在每个函数中复制代码。
const logFunction = function(f) {
return function() {
console.log('Calling Function');
const x = f.apply(null, arguments);
console.log('Function Returns', x);
return x;
}
}
const x = logFunction(function (name) {
console.log('Hello', name);
return name;
});
const sum = logFunction(function (a, b) {
return a + b;
});
x('World');
sum(2, 3);
结果:
Calling Function
Hello World
Function Returns World
Calling Function
Function Returns 5