这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
课堂重点
今天直播课初步学习了nodejs相关知识,对nodejs有了一定的了解,自己之前也有尝试使用过nodejs,今天就根据课后要求学习nodej原生模块
node小计
http 模块
http模块中封装了一个 HTTP服务器和一个简易的 HTTP客户端: http.Server()用于创建是一个基于事件的HTTP服务器,而http.request()和 http.get()可以作为客户端向HTTP服务器发起请求。
url模块
url模块是将url地址字符串转为json对象格式,以方便获取路径信息的功能.
const http = require("http");
const url = require("url");
http.createServer((req,res)=>{
let curUrl = req.url;
if(curUrl == "/favicon.ico"){return}
console.log("当前访问地址:",req.url);
//本实例核心代码
console.log(url.parse(curUrl));
res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
res.write("你访问了根目录");
res.end();
}).listen(3000)
/**
* 返回结果
* 当前访问地址1: /test/index.html?id=9
* Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?id=9',
query: 'id=9',
pathname: '/test/index.html',
path: '/test/index.html?id=9',
href: '/test/index.html?id=9' }
*
* **/
fs模块
fs模块用于对系统文件及目录进行读写操作。可以实现创建文件,删除文件,更改文件,重命名文件等常用文件操作。 使用require('fs')载入fs模块
fs.open 用法
/*
path - 文件的路径。
flags - 文件打开的行为。具体值详见下文。
mode - 设置文件模式(权限),文件创建默认权限为 0o666(可读,可写)。
callback - 回调函数,带有两个参数如:callback(err, fd)。
err为错误信息
fd为文件描述符
*/
fs.open(path, flags[, mode], callback);
//同步写法,返回一个表示文件描述符的整数。
fs.openSync(path, flags[, mode])
nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile(可加sync异步后缀),read, createReadStream三个方法,针对写操作为我们提供了writeFile,write, createWriteStream三个方法.
buffer模块
对数据进行二进制处理
Buffer.from():参数为 array 类型,返回一个新建的包含所提供的字节数组的副本的 Buffer.
Buffer.alloc(size[, fill[, encoding]]):返回一个指定大小的被填满的Buffer实例.分配一个大小为 size字节的新建的Buffer.如果fill为undefined,则该Buffer会用0填充.
Buffer.isBuffer(obj):如果 obj 是一个 Buffer,则返回 true,否则返回 false.
Buffer.concat(list[, totalLength]):返回一个合并了list中所有Buffer的新Buffer.如果没有指定totalLength,则计算list中的Buffer 的总长度.
events 模块
大多数 Node.js 核心 API 构建于惯用的异步事件驱动架构,其中某些类型的对象(又称触发器,Emitter)会触发命名事件来调用函数(又称监听器,Listener)。跟js中的事件监听类似
Path模块
path 模块提供了一些工具函数,用于处理文件与目录的路径。可以通过以下方式使用:
path.resolve([...paths])把一个路径或路径片段的序列解析为一个绝对路径。
path.join([...paths])path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径。
个人总结
nodejs其实还有一些模块我没有讲到,上面的也只是说明,具体用法还得我自己下去再钻研。