菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育
标题:
陈紫怡-20221206-Node.js1
[打印本页]
作者:
Dasmondlicht
时间:
2022-12-12 00:22
标题:
陈紫怡-20221206-Node.js1
一、今日学习内容:
服务器
服务器可以从硬件、软(系统软件、应用软件)两个角度描述
按硬件描述:
服务器就是一台超级计算机(超强CPU、内存、硬盘等)
按系统划分:
在硬件上安装了什么操作系统,就可以称为该系统的服务器
eg:Linux服务器、windows服务器、Unix服务器
按软件划分:
在操作系统中安装了什么软件,就可以称为该软件的服务器
eg:Apache服务器、数据库服务器、邮件服务器等
web服务器
web服务器就是安装了web服务软件,能够提供网站服务的服务器。(淘宝、京东、新浪)
常见web软件:
Apache、Nginx、IIS、Tomcat、Node.js
Apache服务器、Nginx服务器、IIS服务器、Tomcat服务器、Node.js服务器
PS:web服务器又叫做http/https服务器
Node.js
概念
Node.js是一个基于Chrome V8引擎的 ECMAScript运行环境
Chrome浏览器的内核是Blink,js解析引擎V8
V8可以嵌入到任何C++应用程序中,无论是Chrome还是Node.js,事实上都是嵌入了V8引擎来执行JavaScript代码
Chrome浏览器中,还需要解析、渲染HTML、CSS等相关渲染引擎,另外还需要提供支持浏览器操作的API、浏览器自己的事件循环等
Node.js可以执行js文件
Node.js提供了大量的工具(API),能够让我们完成文件读写、web服务器创建等功能
API:application program interface 应用程序接口
中间层----libuv
js代码经过V8引擎,在通过Node.js的Bindings,将任务放到Libuv的事件循环中
Libuv是使用C语言编写的库
Libuv提供了事件循环、文件系统读写、网络IO、线程池等等内容
node.js特点
事件驱动
非阻塞IO(异步)模型
单线程
跨平台(window、Linux、Unix、Mac)
Node.js和浏览器中js的区别
浏览器中的js组成:ES核心(ECMAScript核心)+DOM+BOM
Node.js中的js组成:ES核心+全局成员(全局对象)+模块系统(系统模块、第三方模块、自定义模块)
全局成员:setTimeout、setInterval、console.log()
这几个名称和功能虽然跟浏览器中的一样,但是是nodejs自己实现的,与浏览器无关
模块:一个js文件,内部定义了很多属性和方法,在程序中引入该模块就能使用模块中定义的属性和方法
常用命令
cd:切换目录
dir\Is:查看目录下所有文件和目录
Linux系统中只能使用Is(类unix:unix、Linux、Mac、Android)
cls\clear:清屏
Linux中只能使用clear
exit:退出
Node.js系统模块
介绍:
系统模块:
随着Node.js一起安装,并由官方进行维护的模块
常用系统模块:fs/http/url/path等
一个模块中包含了很多方法和属性,可以帮助我们实现不同的功能
fs----文件系统模块(filesystem)
专门用来操作文件和目录的模块,能够进行文件创建/删除,读取文件,获取文件详情等操作
文件读取
let/var /const fs=require('fs');
fs.readFile('文件路径' , '字符集选择' ,(err,data)=> { } )
文件读取成功 err----null data----文件内容
文件读取失败 err----错误对象 data----undefined
文件写入
let fs=require('fs');
fs.writeFile('文件路径' ,写入文件的字符串 [,字符集 ] ,(err)=> { } )
文件追加
let fs=require('fs');
fs.appendFile('文件路径' ,写入文件的字符串 [,字符集 ] ,(err)=> { } )
Node创建web服务器
请求-处理-响应
请求:
在浏览器的URL地址栏输入地址,按下回车之后,浏览器就会向对应的服务器发送请求。需要服务器的某个文件(最常见最直观的一种请求)
服务器接收到请求之后,找到对应的文件,并将文件中的内容读出
服务器将读出的文件内容返回给浏览器
HTTP模块介绍
http是一个系统模块,让我们能够通过简单稍微流程穿件一个web服务器
Apache是一个成品服务器,安装好之后就有了web服务器的所有功能,使用http模块创建服务器时,服务器能干什么取决于我们如何定义服务器的功能
使用HTTP模块搭建web服务器
创建web服务器步骤:
1)加载/导入/引入 http模块 const http =require(‘http’)
2)创建服务器对象 const server = http.createServer();
3)启动服务器,监听端口 server.listen(3000,( ) = >{ });
4)监听浏览器请求并进行处理和响应 server.on('request' ,(req.res) = > { res.end( ); } )
不同URL显示不同内容
核心:
req(请求对象)中有URL属性,该属性中保存了当前请求的URL地址
URL属性中保存的地址是没有协议、IP、端口号,并且以/开头的地址
用fs.readFile读取出文件内容,再用res.end响应给浏览器
解决中文乱码问题
核心:使用res(响应对象)中的setHeader方法
res.setHeader('content-type','text/html;charset=utf-8');
静态资源加载(CSS、js、img等)
req.url----得到的是没有协议、ip/域名、端口号的地址
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/)
Powered by Discuz! X3.4