前端笔记 -- node.js (一) | 青训营笔记

111 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第四天
今天学习了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)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.

事件驱动程序

image.png
node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。
当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。
这个模型非常高效可扩展性非常强,因为 webserver 一直接受请求而不等待任何读写操作。(这也称之为非阻塞式IO或者事件驱动IO)
在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数。

总结

本文仅是个人学习node.js的笔记,对于node.js的内容还有许多需要学习,会在之后的时间继续更新!

参考

菜鸟教程