Node.js与前端开发实战 | 青训营笔记

63 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

Node.js

初识

(1)Node.js是一个基于Chrome V8引擎的JavaScript运行环境。

(2)Node.js中的JavaScript运行环境

区分 :前端运行环境:浏览器;后端运行环境:Node.js

Node.js中无法调用DOM和BOM等浏览器内置API

(3)Node,js可以做什么

image.png

内置模块


//导入fs模块
const fs=require('fs')
//调用fs.readFile()方法读取文件
//参数一:读取文件的存放的路径
//参数二:读取文件时候采用的编码格式,一般默认utf8
//参数三,回调函数,拿到读取失败和成功的结果,err为失败结果,dataStr为成功结果
 
fs.readFile('C:\\codepractice\\Vue\\files\\12.txt','utf8',function(err,dataStr)
{
    console.log(err)
    console.log(dataStr)
});

http模块

(1)客户端:负责消费资源的电脑

   服务器:负责对外提供网络资源的电脑

image.png

(2)

image.png

image.png

(3)IP地址 就是互联啊网上每台计算机的唯一地址

image.png (4)域名和域名服务器

image.png

(5)端口号 每个web服务都对应一个唯一的端口号,客户端发送的网络请求,通过端口号,可以被准确地交给对应的web服务进行处理。

在实际运用当中,URL中的80端口可以被省略。比如,如果不是80端口,就要写成127.0.0.1:8080,如果是80的端口就可以写成127.0.0.1.

(5)创建最基本的web服务器

//第一步:导入http模块
const http=require('http')
//第二步:创建web服务器实例
const server = http.createServer()
//第三步:为服务器绑定request事件,监听客户端要求
server.on('request',function(req,res){
    console.log('someone visit')
})
//第四步:启动服务器
server.listen(8080,function(){
    console.log('serve running at http://127.0.0.1:8080')
})

Node.js运行时结构

image.png

单线程

js单线程

实际:js线程+uv线程池+v8任务线程池+v8 Inspextor线程

优点: 不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源

缺点: 阻塞会产生更多负面影响;解决:多进程或多线程

跨平台

编写Http Server

image.png

Promisify

用promise+async await重写例子

image.png