这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
一、本次笔记的重点内容:
- node.js简单介绍
- 第一个http server————Hello World
- 读文件
- 写文件
二、简单介绍:
1.Nodejs
Nodejs是一个开源与跨平台 js 运行时环境,使用js语言,我们就不需要再去学习一门新的语言。
Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)
Nodejs运行时环境,不是新的语言、也不是库和框架
Nodejs可以解析并且运行js代码
有了nodejs我们的js代码才可以脱离浏览器在服务端运行
2.浏览器的js
-
ECMAScript
-
DOM
-
BOM
3.Node的js
-
ECMAScript
-
没有DOM和BOM
-
在Nodejs环境中,为js提供一些服务器级别的操作api
-
文件读写
-
网络通信
-
http服务器
-
-
Node构建于8引擎
- chrome 的 V8 引擎是目前公认解析速度最快的引擎
- Nodejs的作者把V8引擎分离出来,开发了一个独立js运行环境
4.Nodejs特点
-
事件驱动 通过事件或状态的变化来进行应用程序的流程控制
-
非阻塞IO模型(异步)
Nodejs处理请求是单线程,但是在后台有一个I/O线程池
三、知识点+例子:
1.搭建一个简单的http server————hello world
const http = require("http")
const server = http.createServer();
// request:请求信息
// response:响应对象
server.on("request",function(request,response){
// console.log(request);
// console.log(response);
const url = request.url
// console.log(url);
console.log("接收到了客户端的请求");
// 通过response.write()方法响应内容
// response.write('hello')
// response.write('node')
// 需要是response.end()方法 响应
// 如果响应的信息只有一个,可以直接写在end中
// end中只接受字符串
response.end("hello world")
})
server.listen(3000,function(){
console.log("服务启动成功,运行在 http://127.0.0.1:3000");
})
运行 node + 文件名
效果图:
2.读文件
首先引入fs模块
const fs = require('fs');
进行读文件操作,在此之前需要先创建需要读取的文件,我这边创建的是01.txt文件
//使用配置参数,设置默认转换成utf8编码格式
fs.readFile('./01.txt', 'utf8', (err, data) => {
// 读取文件完成后的回调函数(读写文件是异步操作)
// err 错误信息,入如果文件读取错误,会返回错误信息,没错就是null
// data 读取到的数据
// if用来判断是否读取成功,考虑代码的健壮性,尽量减少可能导致bug的操作
if (err) {
console.log('err:', err);
return;
}
// 文件中的数据是采用二进制存储
// 读取的时候默认会转换成十六进制,所以看不懂,需要转换成文字
// 第一种:使用toString()转换成文字
// console.log('data:', data.toString());
console.log('data:', data);
});
读取01.txt中的内容
效果图:
3.写文件
与读文件类似的操作,引入fs模块后进行写文件操作
// 引入fs模块
const fs = require('fs');
// 参数1:路径
// 参数2:数据
// 参数3:回调函数
fs.writeFile('./01.txt', '修改数据', { flag: 'a+' }, err => {
console.log(err);
if (!err) {
console.log('写入成功');
return;
}
console.log(err);
});
同样的, 在创建的文件中进行写入 效果图:
这样,简单的读写文件操作就完成啦
四、总结:
本次笔记主要去学习了node的一些基本运用,了解了node.js的一些简单介绍,了解了http server,以及课后去了解了读写文件的一些相关知识