2021-10-24 引入模块

fs模块

fs模块是Node.js的一个核心模块,专门用来操作系统中的文件
fs.readFile(文件路径,options,回调函数)
fs.readFileSync(第一个参数,第二个参数)

  • 第一个参数是文件路径
  • 第二个参数可以是一个表示配置的对象,也可以是一个表示文本文件编码的字符串。默认的配置对象是{ encoding: null, flag: ‘r’ },即文件编码默认为null,读取模式默认为r(只读)。如果第二个参数不指定编码(encoding),readFileSync方法返回一个Buffer实例,否则返回的是一个字符串

fs.writeFile(文件路径,写入的数据,options,回调函数)

  • 异步的向指定路径的文件写入指定数据。回调函数在写完指定数据后触发异步写入文件.,如果文件不存在,则自动创建。可以在文件里面写入任何的数据类型,所有数据都会被隐式转换成字符串。
    fs.writeFileSync(文件路径,写入的数据,options)
  • 同步的向指定路径的文件写入指定数据

fs.existsSync(文件路径) 判断路径是否存在
fs.stat(文件路径) 查看指定文件的信息
fs.truncate(文件路径,字节长度,回调函数) 把文件大小限制在指定字节
fs.unlink(文件路径,回调函数) 删除指定路径的文件
fs.rmdir(文件路径,回调函数) 删除指定路径的空文件夹
fs.mkdir(文件路径,回调函数) 创建指定路径的空文件夹
fs.readdir(文件路径,回调函数) 读取指定文件夹下的所有文件
fs.rename(oldPath,newPath,回调路径) 把oldPath的文件移动到newPath上。

  • rename(旧路径,新路径,回调函数) 1.把旧路径的文件移动到新路径 2.并且改名

qs模块

const qs=require(‘querystring’)
qs.parse()是将URL解析成对象的形式
qs.stringify()是将对象 序列化成URL的形式,以&进行拼接(a=张三&b=李四)

// qs.parse()是将URL解析成对象的形式
let url = 'method=data&projectId=10086&appToken=12345;
qs.parse(url) 输出为:
{
    method:'data',
    projectId:'10086',
    appToken:' 12345'
}
// qs.stringify()是将对象 序列化成URL的形式,以&进行拼接(a=1&b=2)
let url = {
    method:'data',
    projectId:'10000',
    appToken:'54321'
}
qs.stringify(url) 输出为: 'method=data&projectId=10000&appToken=54321';

http模块

// qs模块提供用于解析和格式化 URL 查询字符串的实用工具。 可以使用以下方式访问它:
// qs.parse() 方法将 URL 查询字符串 str 解析为键值对的集合。
//1.
const http = require('http');
const querystring = require('querystring');
const qs = require("querystring");
//2.
const server = http.createServer((request, response)=>{
    //提取表单中的用户名和密码
    //1. 声明一个变量
    let body = '';
    //2. 绑定 data 事件
    request.on('data', (chunk) => {
        //每次读取是64kb,需要多次读取
        body += chunk;   //chunk是二进制数据,和字符串相加也是字符串
    });
    //3. 绑定 end 事件
    request.on('end', ()=>{
        // console.log(body);
        // 将字符串转化为对象
        const data = qs.parse(body);
        // 将所有的用户信息读取出来
        const users = fs.readFileSync('./users.json').toString();
        // 将字符串转化成对象
        const usersObj = JSON.parse(users);
        // 将新用户的对象压入usersObj 对象中
        usersObj.data.push(data);
        // 将对象转化为JSON字符串
        let str = JSON.stringify(usersObj);
        fs.writeFileSync('./users.json', str + `\r\n`);
        console.log(body);
        response.end("over");
    });
});
//3.
server.listen(8000, ()=>{
    console.log('服务已经启动, 8000 端口监听中.....');
})
上一篇:NgRx 里 first 和 take(1) 操作符的区别


下一篇:IIS7.5配置Gzip压缩解决方案(转)