<node.js学习笔记(3)>url,fs,qs,crypto

本文详细介绍了Node.js中URL解析的两种方法,包括使用WhatWG URL API和node自身实现,以及路径拼接和传入URL地址的操作。同时,深入探讨了qs模块在处理querystring格式数据的应用,如解析和字符串化。此外,还讲解了crypto加密模块的使用,以及fs模块在文件读写、文件夹创建和读取方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. URL

对url解析有两套方法<空值显示"">

  1. 规范(主流):The whatwg url API
const URL = require("url").URL;
const myUrl = new URL(a);
//参数a为string类型 例如https://www.baidu.com
复制代码

取map类型中的值:myUrl.searchParams.get("ie")

  1. node自己实现解析url<空值显示null>
const URL = require("url");
const myUrl = URL.parse(a);
//参数a为string类型 例如https://www.baidu.com
复制代码

路劲拼接
const resolve = require("url").resolve;
//resolve(a, b) 两个参数
resolve("local/user/sjl", "url"); //local/user/url
复制代码

传入url地址

resolve(https://www.baidu.com, "node");   //https://www.baidu.com/node
复制代码
2.qs模块(querystring处理格式)

demo

//1. qs.parse
const qs = require("querystring");
const URL = require("url").URL;
const myUrl = new URl(""https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E4%BC%B4%E5%A5%B9&rsv_pq=9867bbfc00070dc5&rsv_t=2d8bV4Pf6LhibJm74DFWLicdMEgP4jKJZ8PQrdss4Wx14X8m%2B2oi9uEnqJw&rqlang=cn&rsv_enter=1&rsv_sug3=14&rsv_sug1=8&rsv_sug7=100&rsv_sug2=0&inputT=8553&rsv_sug4=10518""); 
console.log(qs.parse(myUrl.search.slice(1)));
复制代码

效果:

//2. qs.stringify功能
const qs = require("querystring");
let obj = {
    sjl : 123,
    yl : 456
};
qs.stringify(obj, "@", "$");
复制代码

效果:

第二个参数:连接符,默认"&"
第三个参数:键值对,默认"="


3.crypto加密模块
const crypto = require('crypto');
//crypto.getHashes ;//哈希加密所支持的方法
let pwd = "sjl520";
const obj = crypto.createHsh("sha256");//创建一个哈希加密,规则是256
obj.update(pwd); //通过加密对象对数据进行加密
obj.digest("hex"); //得到加密数据
//disgest得到的是Buffer对象<二进制> ,"hex"是16进制
复制代码

效果: 1.buffer对象

2.hex对象


4.fs文件操控模块

const fs = require("fs")

  1. 读取文件

    1)异步: fs.readFile(a, b, c)

     a> 读取文件的路径 
     b> 回调函数:有两个参数 err,data
         1.err: 默认值null,表示读取顺利,发生错误时会有报错信息(是一个对象{})
         2.data: 读取的数据(Buffer对象)
     c> 字符集:"utf8"
    复制代码
    fs.readFile("./sjl.txt", (err, data) => {
        console.log(err, data);
    }, "utf8");
    //注: 等读取完文档内容后,执行回调,只执行一次
    复制代码

    2)同步: fs.readFileSync(a, c)
    同步没有回调函数,读取失败直接报错

  2. 写入文件 1)异步: fs.write(a, b, c, d)

     a> 文件路劲名称  
     b> 写入的数据  
     c> 字符集:"utf8"
     d> 回调函数:有一个参数 err
         err: 默认值null,表示读取顺利,发生错误时会有报错信息(是一个对象{})
    复制代码
    let data = "522";
    fs.writeFile("./sjl.txt", data, "utf8", (err) => {
        console.log(err);
    }, "utf8");
    //注: 等读取完文档内容后,执行回调,只执行一次
    复制代码

    2)同步: fs.writeSycn(a, c)

  3. 创建文件夹 fs.mkdir()

    fs.mkdir("./sjl", err=>{
        console.log(err);
    });
    注:只能创建单个文件夹,创建存在的会报错
    复制代码
  4. 读取文件夹 fs.readdir()

    fs.readdir("./sjl", (err, data)=>{
        //data: 文件数据,所有文件夹及文件
    })
    复制代码
  5. 判断
    const stat = fs.statSync("路劲")

    1. 判断是否是文件夹:stat.isDirectory();
    2. 判断是否是文件 : stat.isFlie(); .....

返回布尔值

转载于:https://juejin.im/post/5bf39983f265da612b13362e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值