T-Node.js基础-day02-模块、包和npm

模块分类

以路径开头不以路径开头
文件模块require('./circle.js') 常用于引入自定义模块,后缀名如果是js可以省略require('querystring') 常用于引入官方提供的核心模块
目录模块require('./02_ran')首先会到目录下查找package.jsonmain属性对应的文件,如果找不到才会自动引入index.jsrequire('04_2') 会到当前目录下的node_modules目录(会现在当前目录下找node_modules目录,找不到会继续上级目录找该目录,直到盘符的根目录)中寻找04_2目录,常用于引入第三方模块

练习:在03_1.js模块中引入03_2目录,目录下包含文件index.js,文件中导出一个函数,计算任意两个数字相加的和;在03_1.js下调用该函数


模块中的参数

  • require 是一个函数,用于引入其他模块
  • module 当前模块的对象
  • module.exports 是当前模块导出的对象
  • exports 导出对象的别名,默认和module.exports指向同一个对象,为了简化module.exports的写法
  • 如果要导出对象,需要把要导出的对象赋值给module.exports,此时,module.exportsexports就不在指向同一个对象
  • PS.理解关系:module.exports本人;exports替身
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WUI9kQpm-1584293094423)(en-resource://database/1542:1)]
  • __filename 当前模块的绝对路径+文件名称
  • __dirname 当前模块的绝对路径

包和npm

  • 包:指第三方模块,一个包就是一个目录模块
  • npm官网,用于查看所有相关包的信息,使用说明
  • npm:用于管理包的工具,包括下载安装,卸载,更新,上传等
  1. 选择操作目录

    • 命令行选择目录
      cd 绝对目录 回车
    • 如果涉及到盘符的编号,需要
      盘符名称: 回车
    • 还可以在要进入的目录文件夹下的空白区域按住shift,单机鼠标右键,选择“在此处打开powershell
  2. 使用npm

    • npm -v 查看当前版本号
    • npm install 包名称 下载安装包,自动下载到当前命令行目录下的node_modules中,同时会产生package-lock.json文件,用于锁定版本号,会记录依赖包的信息
    • npm config set registry https://registry.npm.taobao.org/ 设置npm的下载地址,从国内镜像下载
  3. CommonJS规范
    JS往服务器端发展遵循了这个规范,例如模块中的引入、导出、模块作用域等,都是这个规范的实现

  4. 查询字符串

    • 查询字符串是浏览器向服务器传递数据的一种方式,位于URL中问号后的部分,例:https://search.jd.com/Search?keyword=笔记本&price=4000&enc=utf-8
    • 查询字符串模块用于操作字符串
    • parse() 将查询字符串解析为对象
    • stringify() 讲对象格式化为查询字符串
      //引入查询字符串模块
      const querystring = require('querystring');
      let str='keyword=笔记本&price=4000';
      //将查询字符串解析为对象
      let obj=querystring.parse(str);
      //console.log(obj.keyword,obj.price);
      //把对象格式化为查询字符串
      let str2=querystring.stringify(obj);
      console.log(str2);
      

    练习:获取商城中通过查询字符传递的数据


  5. URL模块

    1. 用来处理和解析URL的
    2. http://www.codeboy.com:80/product.html?lid=5
      协议    域名/ip地址           端口    文件路径    查询字符串
    3. parse() 将URL解析为对象,可以获取其中的各个部分
      例如:获取文件路径:pathname;获取查询字符串:query
      //引入URL模块
      const url=require('url');
      //引入querystring模块
      const querystring=require('querystring');
      //引入URL模块
      const url=require('url');
      //处理URL
      let str='http://www.codeboy.com:80/product.html?lid=5';
      //解析URL为对象,得到各个部分
      let obj=url.parse(str);
      console.log(obj.pathname,obj.query);
      

      练习:获取一下URL中的数据 https://www.tmooc.cn:443/admin.html?uname=root&upwd=123
      第一步:解析URL获取查询字符串
      第二部:解析获取的查询字符串
  6. 定时器

    1. 一次性定时器
      //开启,当间隔时间到了 ,执行一次回调函数,时间单位毫秒
      let timer=setTimeout(回调函数,间隔时间)
      //清除
      clearTimeout(timer);
      
    2. 周期性定时器
      //开启 每隔一段时间,执行一次回调函数
      let timer=setInterval( 回调函数,间隔时间 );
      //清除
      clearInterval(timer);
      
    3. 立即执行定时器
      第一种:
      //开启 在事件队列的开头执行
      let timer=setImmediate( 回调函数 );
      //清除
      clearImmediate(timer);
      
      第二种:
      //在主程序的后边执行 没有清除方法
      process.nextTick( 回调函数 )
      在这里插入图片描述
  7. 文件系统模块(fs)
    查看文件状态:fs.stat( path, callback ) / fs.statSync

    //引入fs模块  file system
    const fs=require('fs');
    //查看文件状态  sync表示同步
    // let s=fs.statSync('./07_timer.js');
    // console.log(s);
    //异步操作,不会阻止后续代码执行,通过回调函数获取结果
    let s2=fs.stat('./07_timer.js',function (err,stats){
        //err 可能出现的错误
        if(err){
            throw err;//抛出错误
        }
        //stats  获取到的状态
        console.log(stats);
    });
    
  8. 同步和异步
    同步:会阻止后续代码的执行,只有前面的执行完才能执行后面的
    异步:不会阻止后续代码的执行,后边的代码可以先执行,通常是通过回调函数获取结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值