Web前端105天-day30-Node.js

node.jsday02

目录

前言

一、复习

二、模块下的变量

三、模块的分类

四、包和npm

4.1npm命令

五、URL(网址)

六、定时器

 课后练习

总结


前言

node.jsday02学习开始


一、复习

二、模块下的变量

  • __dirname--当前模块的绝对路径
  • __filename--当前模块的绝对路径 + 模块名称

三、模块的分类

  • 模块分为自定义模块、核心模块、第三方模块

以路径开头

不以路径开头

文件模块

require('./circle.js')

用于引入自定模块

目录模块

require('./02_xin')

首先会到02_xin目录下寻找package.json文件中main对应的文件,如果找不到会自动引入index.js

require('xin')

首先会到当前目录下的node_modules目录中寻找xin,如果找不到,会一直往上一级目录下的node_modules目录中寻找;通常用于引入第三方模块

  • 练习:在03_1.js中引入同一级目录下的03_2目录模块,包含一个叫做index.js文件,创建一个函数,传递任意3个数字,返回平均值;暴露这个函数出去。最后在主模块03_1.js中调用暴露的函数。

// 03_1.js
// 引入统一级目录下03_2目录模块
var fn=require('./03_2')
console.log(fn)
// 调用暴露的函数
console.log( fn(5,9,7) )

// 03_2/index.js
function fn(a,b,c){
	return (a+b+c)/3
}
// 暴露函数出去
module.exports = fn

四、包和npm

  • CommonJS:是一种模块化规范,Node.js就是采用这种模块规范,例如:引入,暴露...
  • 包(package):就是第三方模块,是目录模块的形式
  • npm:是用来管理包的工具,使用npm可以下载安装、卸载、更新...  在Node.js安装的时候已经附带安装--npm  -v
  • 查看包的网址:npm
  • 下载包前的准备:确保命令行的路径和目录的路径相同

4.1npm命令

  • npm  init  -y
    //会生成一个package.json文件,作为项目描述文件,可以记录下载安装的包
  • npm  install  包名称
    //载安装指定的包,会将下载的包保存到当前目录的node_modules目录中,如果不存在会自动创建目录;会生成一个package-lock.json文件,会记录所有包的信息;还会在package.json中记录当前下载的包。
  •  npm  install
    //自动去下载package.json中记录的包
  • 其它npm命令:npm

五、URL(网址)

  • URL:统一资源定位,互联网上的任何资源都有对应的网址,例如:网页、图片、视频、声音...
  • https://www.baidu.com/s?wd=手机
  • http://218.247.142.210:9999/products.html?kw=手机
  • http://218.247.142.210:9999/products.html?kw=手机
      协议     域名/IP地址   端口  文件的路径    查询字符串
    • 协议:http协议,客户端和服务器的通信协议

    • 域名/IP地址:找服务器

    • 端口:找服务器下某一个服务

    • 文件路径:要请求的当前服务器上的文件

    • 查询字符串:客户端向服务器传递参数的一种形式

    • 参数名=参数值&参数名=参数值--a=1&b=2

 

new URL()

将一个网址转为对象,可以获取各个部分

searchParams

获取查询字符串部分

get('参数名')

获取参数名对应的值

/*
// 网址
var str = 'http://www.codeboy.com:9999/list.html?kw=手机&a=2'
// 将一个网址转为对象,为了获取各个部分
var obj = new URL(str)
// console.log(obj)
// 获取查询字符串部分
var qs = obj.searchParams
console.log(qs)
// 获取查询字符串传递的值
console.log( qs.get('kw'), qs.get('a') )
*/
// 练习:获取以下URL中传递的参数值
// https://www.tmooc.cn:888/course/web.html?cid=2207&cname=nodejs
// 最后打印以下格式     班级:WEBxxxx  课程名称:xxx
var str = 'https://www.tmooc.cn:888/course/web.html?cid=2208&cname=JS'
// 把网址转为对象
var obj = new URL(str)
// console.log(obj)
// 获取查询字符串部分
var qs = obj.searchParams
console.log(qs)
console.log(`班级名称:WEB${qs.get('cid')}  课程名称:${qs.get('cname')}`)

六、定时器

  • 一次性定时器

开启

var timer=setTimeout(回调函数, 间隔时间)

当间隔时间到了,会调用一次回调函数

清除

clearTimeout(timer)

  • 周期性定时器

开启

var timer=setInterval(回调函数, 间隔时间)

每隔一段时间,调用一次回调函数

清除

clearInterval(timer)

  • 立即执行定时器

开启

var timer=setImmediate(回调函数)

清除

clearImmediate(timer

开启

process.nextTick(回调函数)

  •  所有的定时器执行的过程中,都是将回调函数放入到主程序后的事件队列执行

 

/* 
//一次性定时器
//开启
// 3000毫秒后,会调用一次回调函数
var timer = setTimeout(()=>{
	console.log('boom!!!')
}, 3000)
console.log(1)

// 清除
clearTimeout(timer)


// 周期性定时器
// 开启  
var timer=setInterval(()=>{
	console.log('hello')
},3000)
console.log(1)




// 清除
clearInterval(timer)


// 立即执行定时器
// 开启
console.log(2)
setImmediate( ()=>{
	console.log(1)
} )
process.nextTick( ()=>{
	console.log(4)
} )
console.log(3)
 */

// 练习:开启周期性定时器,每隔3秒钟打印'hello',打印3次清除定时器。
// 声明变量用于计数
var count=0
var timer = setInterval(()=>{
	console.log('hello')
	// 打印一次,数量加1
	count++
	// 判断数量是否为3
	if(count === 3){
		clearInterval(timer)
	}
},3000)


 课后练习

  •  完成如下效果

 


总结

node.jsday02学习结束

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值