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 nhooo.com Event': ' + data); }); //筹集FirstEvent- em.emit(' nhoooEvent', 'This is my first Simple Node.js event emitter example on nhooo.');