Come si può ottenere il nome e la linea di una funzione che ha chiamato quella corrente? Mi piacerebbe avere una funzione di debug rudimentale come questo (con npmlog definendo log.debug
):Ottieni la funzione nome e linea di chiamata in node.js
function debug() {
var callee, line;
/* MAGIC */
log.debug(callee + ":" + line, arguments)
}
Quando viene chiamato da un'altra funzione che sarebbe stato qualcosa di simile:
function hello() {
debug("world!")
}
// outputs something like:
// "hello:2 'world!'"
Per chiarezza, quello che voglio è essenzialmente analogo a this in Python:
import inspect
def caller():
return inspect.stack()[2][3]
// line no from getframeinfo().lineno
c'è un nodo equivalente per raggiungere questo obiettivo?
Questo potrebbe essere utile, ho fatto una domanda simile, ma non nodo correlati: http://stackoverflow.com/questions/6885659/determining-source-line-and-file-of-function-reference-how -does-firebug-do-it –