笔记2

stream 流的概念:Node.js中数据传输是分片的流

流的语法:const stream = require(‘stream’);引入流的模块

​ Writable 可写入数据的流(例如 fs.createWriteStream(路径)).

​ Readable 可以从中读取数据的流(例如 fs.createReadStream()).

​ Duplex 两者都是Readable和Writable(例如 net.Socket)的流。

​ Transform-Duplex 可以写入和读取数据时修改或转换数据的流(例如,zlib.createDflate()).

作用:数据传输 Node.js中数据是分片【 chunk 】传输的

pipe :为了提高性能,减少能耗【 cpu 】

​ : 管道流 【 连接 I/O 之间的一个管道】,这个管道我们称之为: pipe

zlib模块:压缩

语法:

// const fs =require(‘fs’);引入fs模块

// const zlib = require(‘zlib’);映入压缩模块

// const gzip = zlib.createGzip();创建压缩包

// const inp = fs.createReadStream(‘1.js’);//可读1.js文件

// const out = fs.createWriteStream(‘1.js.gz’);//可写

// inp.pipe(gzip).pipe(out);通道

作用:压缩文件

http模块

const http = require(‘http’);

引入http模块

小爬虫概念:通过后端语言爬取网站中的数据,然后通过特定模块进行数据清洗,最后将数据输出给前端

反爬虫:在text()获取数据上加图片

cheerio第三方插件(需要安装)用于清洗数据

安装前 npm init -y

安装 npm i cheerio -save/-s

​ -D

console模块:底层调用:Process.stdout

模块化:

​ node.js使用模块化引入其他类型文件

​ 好处:复用性高,一次定义,多次使用

AMD:AMD的实现需要使用 require.js

​ CMD :CMD的实现需要使用 sea.js(不更新)

​ common.js

​ Node.js 使用了common.js规范

​ 内置模块引用

​ 自定义模块引用

​ 第三方模块引用

EcmaScript 模块化

​ - es5

​ - module.exports / exports

​ - es6

​ - export default / export

​ - 总结:

​ - 1. AMD 和 CMD 都是通过关键字 define 来定义模块的,通过require来引入模块

​ - 2. es6模块化 【 前端里程碑 】

​ - export default 默认导出一个 , import xx from xxx

​ - export 批量导出,导出多个, import { xxx } from xxx

内置模块:fs

Node.js中内置模块使用

​ 1. 格式: var/let/const 变量名 = require(路径) 内置模块路径就是模块名称

​ 2. 使用内置模块身上的方法

const fs = require(‘fs’)

fs.readFile(‘路径’,‘字符编码’,(error,docs)=>{

consoe.log(docs)

})

第三方模块request

作用:数据请求

1.安装 npm/cnpm i/install request --dev-save/-D

​ npm/cnpm i/install request --save/-S

2.导入

​ let/var/const = require(模块名称)

node.js不存在跨域(后端)

​ const request = require( ‘request’ )

request(‘https://m.lagou.com/listmore.json’,( error,response,body ) => {

// 参数说明: error 错误信息 response 响应结果 body 获取的数据

console.log( body )

})

自定义模块

打造模块

​ 1.创建模块【Function/Object/String】

​ 2.导出模块

​ -module.exports = 模块名称 导出一个

​ -module.exports = {} 导出多个

​ 3.导出模块

​ var/let/const 变量名 = require(相对【网络】路径)

​ var/let/const{变量名} = require(相对路径)//引入多个

1.创建模块

const name = {

firstName: ‘Gabriel’,

lastName: ‘Yan’

}

2.导出模块

// module.exports = name

module.exports = {

name

}

3.导入

const { name } = require( ‘./name.js’ )

多个导入

const { age,xiaoyang } = require( ‘./age.js’ )

输出

console.log( age.num )

console.log( xiaoyang.age )

console.log( name.firstName )

console.log( name.lastName )

​ npm 【 了解 】

- npm包上传npmjs.com这个网站

- 第三方模块都是别人上传的,那么我们想:我们是否也可以上传?

- 当然可以

- 步骤

​ - 1. 创建一个自定义模块 【 文件夹名称一定记住是唯一的,去npmjs.com查是否有 】

​ - 2. 创建package.json文件

​ - 3. 将npm源切换到npmjs上 【 nrm切换 】

​ - nrm安装: cnpm i nrm -g

​ - nrm ls 列出当前所有源

​ - nrm use 源名称 切换到某一个源

​ - 4. 注册npmjs.com账号 【 qq邮箱 】

​ - 5. 激活npmjs.com账号 【 重要/ 犯错高发点 】【 小弹框只出一次 】

​ - 6. 在当前目录下登录npm账号

​ - $ npm adduser

​ - 7. 填写用户名、密码、激活邮箱

​ - 8. 发布

​ - $ npm publish

前端环境

- 开发环境

- 生产环境

​ - 二阶段项目

- 测试环境

​ - 测试代码运行情况

​ - 测试代码质量

​ - 测试代码风格

- 预上线环境

​ - beta版本 【 内测 】

- 上线环境

​ - 放在云服务器/服务器主机中的项目,可以供任何用户使用

后端中服务器类型有两种

​ \1. web服务器【 静态服务器 】

​ - 举例: wamp里面www目录

​ - 目的是为了展示页面内容

​ - 前端: nginx

​ \2. 应用级服务器[ api服务器 ]

​ - 后端接口

​ - tomcat

/*

业务: 我想在这个js文件中读到package.json中的name字段

​ precess 进程管理模块、

​ env 所有的进程中的环境变量

*/

console.log( process.env.npm_package_name ); // foo

console.log( process.env.npm_package_version ); // foo

console.log( process.env.npm_package_main ); // foo

gulp 基于node.js的构建工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值