node模块的理解

##node 是一个平台
nodejs 使用了一个事件驱动非阻塞式I/O的模型,使其轻量又高效
浏览器
浏览器发起请求
服务器回复请求
代码
html html 解析
css css 解析渲染
img img解析渲染
js chrome V8

node
chrome v8 js 运行
node 的其他操作
文件操作
数据库操作

nvm使用

这里是引用

nvm -v version nvm 的版本
nvm -ls 展开当前通过nvm 管理的node 版本 默认所有
nvm install node@8.12.0 安装node 版本
nvm uninstall node@8.12.0 进行卸载
nvm use 版本号 表示切换到某一个node 版本

浏览器的方法在node中都不能不用 因为 node 中没有 window 对象
有一部分方法和浏览器中名字一样但是不是同一个方法

REPL环境 交互解析器

r:read 读取数据
e:event 事件驱动
p:print 输出
l:loop循环

node模块化
一切万物皆模块
模块化规范: AMD CMD commonjs
nodejs 采用commonjs 的规范

**

模块的分类

**
1.自定义模块:根据自己的功能来实现的模块·
2.内置模块:node本身提供的模块不需要下载 直接用
3.第三方模块 :npm https://www.npmjs.com

内置模块
看文档
api可用层次 红色:不能用 黄色:即将不能用 绿色:安全无公害
event
fs
http
url
querystring
stream
path

自定义模块
1.创建一个模块 一个js文件就是一个模块
2.抛出一个模块 module.exports=模块 来进行抛出
3.引入一个模块并且使用 const name=require(’ 文件路径 ')

第三方模块

1.下载
2.引入
3.使用
案例

  const http=require('https');
    const fs=require('fs');
    //发起服务器端的请求
    http.get('https://www.baidu.com', (res) => {
    // console.log(res)
    // console.log(res.statusCode)
    const { statusCode } = res;
    const contentType = res.headers['content-type'];
    console.log(contentType);
    
    let error;//判断状态码和文件格式是否正确
    if (statusCode !== 200) {
    error = new Error('状态码不是200');
    } else if (!/^text\/html/.test(contentType)) {
    error = new Error('文件格式不对');
    }
    if (error) {
    console.error(error.message);
    // consume response data to free up memory
    res.resume();
    return;
    }

//数据处理
res.setEncoding('utf8');
//设置数据的编码格式
let rawData = '';
res.on('data', (chunk) => {//接受分段数据会触发chunk接受chunk接受到的分数数据
rawData += chunk;
});
res.on('end', () => {
//接受信息完毕 会触发end 方法
fs.writeFileSync('./index.html',rawData);
});
}).on('error', (e) => {
console.error(`Got error: ${e.message}`);
});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值