这是我参与「第四届青训营 」笔记创作活动的的第四天
今天学习了node.js相关的东西
什么是 node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl)、Ruby等服务端语言平起平坐的脚本语言。
安装 node
Linux环境下安装
可以输入如下命令:
sudo apt-get update
sudo apt-get install node
或者:
sudo apt update
sudo apt install node
windows环境安装
在官网下载安装包即可
创建第一个 node 应用
引入模块
使用require()方法来引入模块,此处以引入http模块为例:
const http = require("http");
创建服务器
此处使用http.createServer( )方法创建服务器,并使用listen方法监听端口。通过 request, response 参数来接收和响应数据。
const http = require('http');
const port = 8888
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(port);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
运行代码
使用node命令执行代码:
node xx.js
运行成功后,访问 http://127.0.0.1:8888 将会看到一个写着 "Hello World" 的页面
node.js 事件循环
node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。
node.js 几乎每一个 API 都是支持回调函数的。
node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。
node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.
事件驱动程序
node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。
当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。
这个模型非常高效可扩展性非常强,因为 webserver 一直接受请求而不等待任何读写操作。(这也称之为非阻塞式IO或者事件驱动IO)
在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数。
总结
本文仅是个人学习node.js的笔记,对于node.js的内容还有许多需要学习,会在之后的时间继续更新!