Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从运行的应用程序中获取nodejs的源代码_Node.js - Fatal编程技术网

Node.js 如何从运行的应用程序中获取nodejs的源代码

Node.js 如何从运行的应用程序中获取nodejs的源代码,node.js,Node.js,我无意中删除了nodejs应用程序的源代码,但该应用程序正在运行,所以如何从运行的应用程序中获取源代码 我希望源代码已经缓存在某个目录中。也许有一种方法可以使用Nodejs调试器检索一些源代码 假设使用Linux操作系统,则需要获取应用程序的进程id: $ ps -e | grep node 接下来,您将在调试模式下输入应用程序,如下所示: $ kill -s USR1 PID 其中PID是节点应用程序的PID 然后启动调试控制台: $ node debug -p PID 如果您有应用程

我无意中删除了nodejs应用程序的源代码,但该应用程序正在运行,所以如何从运行的应用程序中获取源代码


我希望源代码已经缓存在某个目录中。

也许有一种方法可以使用Nodejs调试器检索一些源代码

假设使用Linux操作系统,则需要获取应用程序的进程id:

 $ ps -e | grep node
接下来,您将在调试模式下输入应用程序,如下所示:

$ kill -s USR1 PID
其中PID是节点应用程序的PID

然后启动调试控制台:

$ node debug -p PID
如果您有应用程序控制台,您将看到:

Starting debugger agent.
Debugger listening on port 5858
在调试控制台中,您应该看到一个调试提示,您可以使用以下命令获取可用命令:

debug> help
我可以使用list命令显示一些正在运行的应用程序源:

其中NUMBER_OF_LINE是要显示的源代码行数

我不确定这是否是您的一次性尝试,因为我的源代码没有被删除。

希望您能得到一些结果。

我通过附加调试器(如建议的那样)恢复了完整的文件

要实际恢复代码,请执行以下操作:

  • 使用
    setBreakpoint('app.js',10)
    ,其中10是您知道将在运行过程中再次运行的代码行

  • 暂停
    ,然后说
    下一步
    ,直到要恢复的脚本暂停

  • 最后,假设
    list(5000)
    ,其中5000是要列出的任意长的行数

  • 您现在将打印出完整的脚本,尽管前面有行号,但您可以使用删除它们


  • 希望这对以后遇到这一独特问题的人有所帮助,因为我花了几个小时才弄明白。

    应该使用源代码管理它现在在nodejs内存中。无法想象您将如何从进程外部将其从内存中取出。是否有任何方法可以保护脚本不受此影响?我的意思是,如果我正在导入加密脚本,调试器会显示正在运行/解密的版本,这可以避免吗?
    debug> list(NUMBER_OF_LINE)