笔记4.11

155 阅读4分钟

流 : stream

const fs = require("fs");

let b  = Buffer.alloc(64*1024);

fs.writeFileSync("64k",b);

读取65k文件  : 如果直接通过 readFileSync 读取那么 会一次性把所有内容读取出来
let res = fs.readFileSync("./65k");
console.log(res);
通过流的方式 读取文件

let res =  fs.createReadStream("./64k");  // 创建一个可读流
res是流的对象;
需要监听流的读取事件 
let count = 0;
获取流的结果 需要把所有的chunk 连接在一起
let str = "";
res.on("data",chunk=>{  // chunk 就是 流分成的小块 ;
    // 流会把 大于64k的文件进行拆分 ,拆分成 64k的小文件  进行传递 ;
    // 最终传递完毕的标志就是  end事件 ;
    count++;
    console.log(count);
    str+=chunk;
})

流读取完毕的事件 
res.on("end",()=>{
    console.log(str);
})

post参数

post () 方法是 jQuery ajax 的一种简写函数,用于通过 HTTP POST 请求从服务器载入数据。本文介绍了 post () 方法的语法、参数、回调函数、错误处理和实例,以及如何使用 post () 方法发送表单数据、处理不同的数据类型和跨域请求。

例:
    const http = require("http");

    const fs = require("fs");

    const url = require("url");

    const server = http.createServer((req,res)=>{

    // 提取路径中的pathname

    let {pathname} = url.parse(req.url);

    if(pathname==="/"){

       let posthtml =   fs.readFileSync("./post.html");

       res.write(posthtml);

       res.end();

    }else if(pathname==="/post"){

        // 接收post传递过来的参数

        // 通过流的方式接受

        let str = "";

        req.on("data",chunk=>{

            str += chunk;

        })

        req.on("end",()=>{

            res.write(str);

            res.end();

        })

    }

    })

    server.listen(8989);

http 可以 通过 http.get(url,req=>{})获取网页数据 网页数据需要通过流来接收;

http.get 去获取一个网页的数据,然后存储起来 ; 网址需要是 http 请求的网址 ;

www.baidu.com

www.gd.xinhuanet.com/newscenter/…

npm的基本使用

  • npm 是什么? node package manager 包管理工具
  • 安装 : 安装nodejs的时候自动安装的;
    • 查看 nodejs : node -v
    • 查看npm 的版本 : npm -v
  • 初始化 package.json文件 : npm init ;因为所有安装的第三方模块都会自动写入到 package.json里;
  • www.npmjs.com/ 官网

安装包

- `npm install 包名` 或者 `npm i 包名`

删除包

- `npm uninstall 包名`

安装所有记录的包

- `npm i` : 会自动查找 package.json里的依赖信息,一次性下载下来;

安装指定版本的包

- `npm i 包名@版本号`;

开发依赖和生产依赖

  • 生产依赖: 开发和生产的时候都需要用到的包 需要加上后缀 npm i 包名 --save 或者 npm i 包名 -S 会写入到 package.json 的 dependencies 里记录 下来 。默认就是 生产依赖
  • 开发依赖 : 只是在开发的时候需要用到的包,上线之后不需要用到了 ,需要加上后缀 npm i 包名 --save-dev 或者 npm i 包名 -D; 会在package.json的 devDependencies里记录下来;

npm的使用

npm的全局安装和局部安装

  • 局部安装 : 安装在命令执行的目录,默认安装就是局部安装 npm i jquery less sass;
  • 全局安装 : npm i 包名 -g;
    • 安装到 npm root -g这个位置;多数包 在局部可以引入;
    • 全局安装nodemon 工具 : npm i nodemon -g;

npm的下载源地址 ;

  • 默认npm会在 registry.npmjs.org/ 服务器地址下载包;
  • 切换npm的下载地址源 ,切换成淘宝源;
    • 查看当前npm的下载源地址 : npm config get registry
    • 更改npm的下载源地址 : npm config set registry https://registry.npmmirror.com
  • nrm 工具 :
    • npm i nrm -g : 全局安装
    • 通过nrm切换下载源地址 : npx nrm use taobao : 切换淘宝源地址;
      • npx nrm use npm : 切换官方源地址

cnpm 的使用

  • cnpm 和 npm 一样使用 ,默认会使用淘宝源地址;
  • 安装 : npm i cnpm -g;

发布自己的包

发布自己的包

  • 1.前提 : 需要把npm的源地址改成官方源地址;
    • npx nrm use npm;
  • 2.需要再 www.npmjs.com/ 里注册账号;
  • 3.添加注册的用户名和密码 到本地 : npm adduser 弹出网站 输入刚才注册的用户名和密码
  • 4.准备自己的包 进行发布
    • 包里一定需要package.json文件
    • 包的名字 : 1.不能和现有的包名重复了 2.包名不能太随意;
    1. 发布自己的包 : npm publish
    1. 下载字节的包 : npm i zz4101module;

yarn 的使用

yarn 的使用

  • 类似npm ,是 facebook 推出的包管理工具;
  • 需要全局安装yarn : npm i yarn -g;
    • yarn --version 查看yarn的版本号
  • 安装包 : yarn add 包名 类似 npm i 包名
  • 删除包 : yarn remove 包名 类似 npm uninstall 包名
  • 默认是生产依赖 ,可以安装开发依赖 : yarn add 包名 --dev 类似 npm i 包名 --save-dev;
  • 全局安装 : yarn global add 包名 类似 npm i 包名 -g;
  • 通过 : yarn global dir查看全局安装的路径
  • yarn 安装所有依赖 类似 npm i 操作

cyarn 类似 cnpm 使用和yarn 一样