NodeJs(day02)

复习

  • ES6
    块级作用域 let { }
    不允许多次使用 let 声明

    参数扩展 function fn(a, b, c = 0) {}

    箭头函数(回调函数)sort((a, b)=>a -b)

    模板字符串 ${JS表达式}

    nodeJs
    全局对象 global/process/console/Buffer

    process.arch/process.platform/process.env/
    process.version/processs.pid/process.kill()

    console.log/console.info/console.error/console.time/
    console.timeEnd

    Buffer.alloc(5, “ABCDE”)
    toString/String

模块

  功能体 文件(模块)封装
  (function(exports, require, module, __filename, __dirname) {
    require: 引入模块
    module: 当前模块
    module.exports.a = 1; 要导出的内容
  })

- 练习
  创建两个模块 man.js(主模块) , circle.js(功能模块), 在功能模块下创建两个函数, 传递半径计算圆的周长和面积, 并导出两个函数, 在主模块下引入功能模块,并调用两个函数

- 模块系统
  > require: 引入模块,返回一个对象
  > module: 指代当前模块对象
  > module.exports: 当前模块的导出对象
  > exports: 与 module.exports 指向同一个对象
  > __filename: 当前所在的模块目和模块名称
  > __dirname: 当前模块的绝对目录


- 模块引入
  见文件 [模块引入.png]


- 练习: 创建模块 3_1.js, 引入当前目录下的 03_2 目录,
在03_2目录有一个文件 fun.js, 导出一个函数 add(计算两个数字相加) 在03_1.js 中调用改函数

练习:
  创建目录05, 在05下创建 05_1.js 引入不以路径开头目录模块05_2, 含有文件foo.js, 输入 XXX;

包(package)和 npm

CommonJS 是一种规范, JS 向服务器端发展就遵循了这个规范

包(package)就是一个目录模块
npm: 用于管理包的工具

切换目录
cd 完整的目录
在指定目录空白区域, 按住shift键, 单机鼠标右键
选择"在此处打开powershell窗口"

使用 npm 安装(下载)
npm install 包名称
自动安装到所在目录下的 node_modules 中

npm init -y 初始化一个 package.json 文件, 用于记录安装的包相关的信息

npm install
自动安装 package.json 中记录的包名称以及版本号

npm 官网: https://www.npmjs.com

核心模块

  • querystring 模块
    查询字符串: 浏览器向服务器发请求 传递数据 的一种方式
    jd.com/Search? keyword=手机 & enc=utf-8

    parse() 将查询字符串解析为对象
    stringfiy() 将对象格式化为查询

    练习: 获取查询字符串的商品编号和商品名称
    lid=5&pname=apple

  • url 模块
    http://www.tmooc.cn:80/detail.html?lid=5

    parse() 将 URL 解析为对象
    protocol 协议
    hostname 主机名(域名/IP地址)
    port 端口号
    pathname 请求文件的路径名称
    query 查询字符串

    format() 将对象格式化为 URL
    注意: query 中对应的是一个对象

    {
      protocol: "https",
      hostname: "www.tmooc.cn",
      port: "8080",
      pathname: "detal.html",
      query: {
        lid: 5,
        pname: "dell"
      }
    }
    

全局函数

parseInt/parseFloat/isNaN/isFinite/eval…
(1)一次性定时器
开启:
const timer = setTimeout(回调函数, 时间);
当时间到了就会执行一次 回调函数; 单位是毫秒
清除
clearTimeout(timer)

(2)周期性定时器
开启:
const timer = setInterval( 回调函数, 间隔时间 )
每隔一段时间, 执行一次回调函数

清除
  clearInterval(timer)

(3)立即执行
开启
const timer = setImmediate(callBack);
清除
clearImmediate(timer);

- 在事件队列的我开头执行

(4)立即执行
process.nextTick(callBack);
在执行栈所有代码的最后执行

fs 模块(文件操作)

文件包括文件和目录,统称为文件
fs.stat(path, callBack)
path: 文件路径
callBack: 回调函数, 用于获取结果
err: 可能产生的错误
stats: 具体文件状态

课后任务

  1. 整理思维导图

  2. 获取URL中查询字符串的数据
    https://www.tmooc.cn:80/course.html?cid=17&cname=web

  3. 同步和异步 HTTP 协议 http模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值