当前位置: 首页 > 面试题库 >

永远与Node.js结合使用

艾哲
2023-03-14
问题内容

我有一些关于永久使用Node.js的问题,可能很琐碎。根据我的阅读,永远可以通过编程使用,并且它维护了一个列表,其中包含所有永远使用的脚本。该进程终止后,它会自动产生一个新的进程,直到停止为止。

但是,我的问题是,如何永远做到这一点?是否还会添加这些脚本以在启动时启动?


问题答案:

您可以像这样永久性地使用程序:

在node.js脚本中使用Forever实例:

var forever = require('forever-monitor');

  var child = new (forever.Monitor)('your-filename.js', {
    max: 3,
    silent: true,
    options: []
  });

  child.on('exit', function () {
    console.log('your-filename.js has exited after 3 restarts');
  });

  child.start();

您应该花一点时间阅读一下README.md中
Forever的出色文档中的可用选项。

您还可以在Forever中监听许多事件:

  • 错误[err]:发生错误时引发
  • start [进程,fvrFile,数据]:在首次启动目标脚本时引发。
  • 停止[进程]:当用户停止目标脚本时引发
  • save [路径,数据]:当目标Monitor将pid信息保存到磁盘时引发。
  • 重新启动[永远]:每次重新启动目标脚本时引发
  • exit [forever]:在目标脚本实际(永久)退出时引发。
  • stdout [data]:从子进程的stdout接收到数据时引发
  • stderr [data]:从子进程的stderr接收到数据时引发

通过将事件侦听器附加到您要运行的脚本并以一种优雅的方式处理它们,可以做到这一点。

如果您想确切地看一下它是如何执行的,则该代码已被很好地记录下来。

您还应该阅读有关如何使进程永久运行的出色教程。

至于第二个问题:不,它不会将其添加到启动时启动。为此,您需要将其添加为新贵工作,或使用诸如Monit之类的工具进行监视和启动。为此,您应该看一下使用Upstart和Monit部署Node.js的方法。这是一个很棒的教程。



 类似资料:
  • 问题内容: 在哪种情况下,应该只在实际部署中将Node.js用作服务器? 当一个人 不 希望只使用Node.js的,有什么用Node.js的发挥更好?Apache还是Nginx? 问题答案: 将另一个Web服务器放在Node.js前面有几个充分的理由: 不必担心Node.js进程的特权/ setuid。通常只有root可以绑定到端口80。如果让nginx / Apache担心以root身份启动,绑

  • 问题内容: 我正在尝试使用node.js制作Samsung Smart TV应用程序。 在我的项目中,我想使我的应用程序与服务器PC通信。 根据许多网站,我可以使用“ jsonp”来做到这一点。 这是我发现的客户端代码。 而且,这是我发现的服务器端代码。 这些代码在我的PC(服务器PC)上正常工作,但是当我在其他计算机上打开客户端页面时,它不起作用。 控制台只给我这个日志: 我想使用jsonp处理

  • 问题内容: 我使用Emacs 24.2。我已经安装并从MELPA执行,现在在REPL中而不是标志我有这个胡乱: 在低级Javascript模式下,REPL本身可以正常工作,只是符号已更改。如果输入未完成的表达式,它甚至会打印。该是字符的系统,不与复制-粘贴复制的,我加他们为你有一个想法。 在我的初始化文件中: 在终端呼叫中产生有效的REPL。 为什么提示会以这种方式表现?我该怎么做才能纠正这个问题

  • 问题内容: Node.js非常适合我们的Web项目,但是很少有需要Python的计算任务。我们已经为他们准备了Python代码。我们非常关心速度,如何以异步非阻塞方式从node.js调用Python“工人”的最优雅方法是什么? 问题答案: 对于node.js和Python服务器之间的通信,如果两个进程都在同一服务器上运行,则我将使用Unix套接字,否则将使用TCP / IP套接字。对于封送处理协议

  • 问题内容: 如您所见,我是新来的… 我建立了第一个网站,建立了第一个Node.js服务器来为其提供服务,然后将所有内容实时发布到EC2上。 我在我的EC2 IP地址上测试了所有内容,并且似乎一切正常。 现在直到现在,我一直在本地测试我的应用程序,因此每当我关闭终端时,app.js都将停止运行,因此在localhost上将不会提供任何服务,这是有道理的。 现在,我的服务器位于EC2上,每当我关闭终端

  • 有什么让我怀念的吗?如果我必须手动关闭连接,是不是至少可以从Javers那里收到一个不再需要连接的通知?