Javascript 打印函数调用者的更好方法&x27;s线号
我有一个函数定义如下:Javascript 打印函数调用者的更好方法&x27;s线号,javascript,node.js,Javascript,Node.js,我有一个函数定义如下: printPrettyJson = function (json) { // logger.log(chalk.magenta(JSON.stringify(json, null, 4))) try { throw Error("printPrettyJson") } catch (error) { conso
printPrettyJson =
function (json)
{
// logger.log(chalk.magenta(JSON.stringify(json, null, 4)))
try
{
throw Error("printPrettyJson")
}
catch (error)
{
console.log(error.stack)
console.debug(chalk.magenta(JSON.stringify(json, null, 4)))
}
}
我所做的就是简单地打印出一个JSON类型的对象(因为它会显示[object object]
。然而,我想知道我这样做是否不会抛出一个笨拙的错误
。我是从另一个文件调用它的,例如
文件1
文件2
那么我如何在
printpertyjson
的函数调用上从File1输出line 101
?您可以通过创建一个新的错误对象从堆栈跟踪中获取行号,实际上不必抛出错误:
printPrettyJson =
function (json)
{
console.log(new Error().stack)
console.debug(chalk.magenta(JSON.stringify(json, null, 4)))
}
您可以使用输出调用堆栈而不引发错误。它在
控制台API的规范中。会有帮助吗?@trincot这可能已经足够好了。我以前做过,它用[object]输出红色文本
我以为它抛出了一个错误。但我猜它实际上只是在打印堆栈。
// printPrettyJson's definition in here
printPrettyJson =
function (json)
{
console.log(new Error().stack)
console.debug(chalk.magenta(JSON.stringify(json, null, 4)))
}