了解node.js中的Node生命周期和事件循环

node.js中的简单http服务器将注册一个事件循环,该循环将继续侦听http请求。

执行包含用于创建服务器的代码的文件将如下所示工作:

节点App.js =>开始执行脚本=>代码解析,注册事件和功能=>事件循环=>只要注册了事件,就继续运行。

这是node.js的单线程事件驱动方法。对于数据库中的值的访问和更新,也可以使用事件驱动的方法来工作。即使是单线程,由于其处理速度快,它一次也可以处理多个请求。

示例-

const server = http.createServer((req,res)=> {console.log('hello');});

在上面的示例代码中,createServer方法将请求侦听器作为事件的参数。此事件将继续侦听指定端口上的http请求。

如何退出事件循环

process.exit()是将停止事件循环的函数。

App.js

const http = require(‘http’);
const server = http.createServer( (req, res)=>{ console.log(‘hello’); process.exit(); } );
server.listen(3000);

现在,一旦我们使用终端通过节点App.js运行App.js文件,事件循环就会开始。事件循环将在接收到第一个http请求时停止。可以通过打开浏览器并导航到localhost:3000进行检查,并在控制台登录终端。它将打印问候消息,并停止事件循环。

process.exit()很少使用,因为我们总是保持事件循环运行以侦听http请求或与数据库的连接。只能根据特定要求使用它。

如果只需要通过停止节点进程从终端退出,则可以在终端中使用ctrl + c停止节点进程。

事件循环遵循非阻塞代码执行。

简单事件发射器示例

// import the core module events from node.js
const events = require('events');
//创建EventEmitter类的对象
var em = new events.EventEmitter();
//订阅FirstEvent-
em.on('nhoooEvent', function (data) {
   console.log(' Hello (niaoge.com) Event': ' + data);
});
//筹集FirstEvent-
em.emit(' nhoooEvent', 'This is my first Simple Node.js event emitter example on nhooo.');