node.js - 与 node.js 相关的问题

标签 node.js

<分区>

我对 node.js 比较陌生。我有一个与之相关的问题。据我了解,node.js 使用事件驱动范例,因此它只生成一个线程并异步处理所有内容(事件驱动方式)。这有助于它消耗更少的资源并处理大量并发连接。

但是,我有一个与此相关的问题,因为它只有一个线程,即使是一个未处理的异常也可能导致一切崩溃,不是吗?不像像 apache 这样的 node.js webserver 可以使用多个进程来处理多个连接,即使一个进程崩溃也没关系。

所以,我有点担心 node.js 是否适合这个。我只是一个初学者。所以任何见解都会有所帮助

最佳答案

让我们打个比方来解释这个相对较新的技术:一个唱机和十个用户:

PHP 多线程:10个唱机,每个唱机1个 ARM +针,每个用户1个唱机。每个用户用自己的电唱机播放几个音符。未处理的异常,或嘶嘶声=录音机一直播放,直到用户抬起 ARM /进程关闭。其他人听不到,因为他们有自己的唱机。他们戴着耳机。

NodeJS:单线程

一个唱机,有 10 个 ARM +针,每个用户一个,他们都共享一个唱机。每个用户同时访问一些快速的笔记,一个过程,不记录在案。它是异步的,每个人都能得到一段音乐。一个未处理的异常=一个用户的嘶嘶声,只有那些访问相同的几个笔记的人,或者抛出异常的相同进程也会听到嘶嘶声。但仅此而已。其他人仍会听到悦耳的音乐。他们仍然有自己的耳机。

K。没有更多糟糕的类比。

这是您的假设问题的解决方案:在 Node.js 中,您可以将监听器附加到 `uncaughtException"事件。因此,您可以终止有问题的进程(如果它愿意或可能)罕见事件,关闭服务器。

关于node.js - 与 node.js 相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078378/

相关文章:

javascript - 如何在 Mocha 测试期间接受用户输入 (NodeJs)

node.js - 我如何知道 Mongodb 服务器正在运行 --auth on ?

javascript - javascript装饰器中的 `target`是什么

node.js - 如何在不使用 github 的情况下将我的 nodejs 应用程序部署到 openshift 中?

javascript - Bluebird 的 promise 和领域

node.js - 尝试在 Typescript 中跨不同文件共享接口(interface)时出错

node.js - TypeScript:如何为已安装的 npm 包定义自定义类型?

javascript - 无法将变量名称从一个 Node 模块发送到另一个 Node 模块,以将其用作使用 socket.io 的聊天应用程序的房间名称

javascript - 正则表达式 : substring not followed by character

javascript - 为什么没有执行带有 'if' 的 Promise 之后的 block?