node.js day2 5-20

1.模块

require() 引入模块,得到导出的对象

module.exports 当前模块导出的对象

_dirname 当前模块的绝对目录

_filename  当前模块的核对目录+模块名称 

2.模块分类

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

 

 以路径开头不以路径开头
文件形式

require ('./circle.js')

用于引入自定义模块

require('querystring')

引入官方提供的核心模块

目录形式

require('./02_tao')

首先会到目录下寻找package.json文件中main属性对应得文件,如果找不到会自动找index.js

require('tao')

会到同一级的node_modules目录中寻找tao,如果找不到会一直往上一级的node_modules目录中寻找

用于引入第三方模块

练习:在03_1.js中引入同一级的目录模块03_2,目录下含有文件index.js,导出一个函数,传递任意两个数字返回最大值;最后在03_1.js中调用该函数

//03_1.js

let obj = require('./03_2');
console.log(obj);
console.log(obj.getMax(2,5));

//index.js  存放在03_2(文件)目录下

function getMax(a,b){
	return a>b ? a : b;
}
module.exports ={
	getMax:getMax
};

3.包和npm

包(package),指的是第三方模块

npm  用于管理包的工具模块,可以用于下载,上传,更新,卸载.....

CommonJS规范:Node.js就是遵循这个规范,出现的模块概念。JS之所以作为服务器端语言,就是遵循这个规范。

下载地址:www.npmjs.com

(1)切换命令行的目录

方法1:

cd  粘贴目录的路径   回车

如果有盘符的变化,需要添加    盘符名称 :回车

方法2:

在要进入的目录下的空白区域,按住shift,单击鼠标右键,选择'打开powershell窗口'

(2)使用npm

在node.js安装的时候会附带安装

npm -v  查看版本号

npm init -y 初始化一个package.json文件,是项目描述文件,可以记录下安装的包

npm install 包的名称 下载安装包,将包放入到node_modules目录中。如果这个目录不存在会自动创建,同时生成package-lock.json文件,记录所有包的版本号,在package-lock.json中会记录安装的这个包的信息。

npm install 自动去安装package.json 和 package-lock.json中记录的包

npx -p node@8  node  文件路径  下载指定版本的nodejs,然后运行文件,运行完会将下载的nodejs删除

4.querystring模块

查询字符串:浏览器向服务器发请求传递数据的一种方式,位于浏览器的地址栈(URL)以问号为分隔

https://search.jd.com/Search?keyword=电脑&enc = utf-8

查询字符串模块用于操作查询字符串的工具模块

parse() 将查询字符串解析为对象

练习:获取以下查询字符串中传递的数据

‘lid=5&num=1’

5.URL模块

URL:统一资源定位,互联网上的任何资源都有对应的URL

http://www.codeboy.com:9999/product_detail.html?lid=5

协议   域名/ip地址           端口 文件在服务器的路径  查询字符串

URL模块用于操作URL的工具模块

parse() 解析一个URL为对象,可以获取URL的各个部分

练习:获取以下URL中传递的查询字符串数据

https://www.tmooc.cn:443/web/course.html?cid=2104&cname=nodejs

打印出 班级编号:2104

课程名称:nodejs

//导入url模块
const url = require('url');
const querystring = require('querystring');
 let str2 = 'https://www.tmooc.cn:443/web/course.html?cid=2104&cname=nodejs';
 //将url解析为对象
 let obj2 = url.parse(str2);
// console.log(obj2);
//获取查询字符串部分
let str3 = obj2.query;
//console.log(str3);
//将查询字符串解析为对象
let obj3 = querystring.parse(str3);
console.log(obj3);
console.log(`
班级编号:${obj3.cid}
课程名称:${obj3.cname}
`);

6.timer模块

定时器模块,提供一组全局函数

(1)一次性定时器

(2)周期性定时器

开启

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

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

清除

clearInterval(timer)

 

练习:使用周期性定时器每隔2秒打印hello,打印3次结束。
 


//声明变量用于记录次数
let count =0;
let timer = setInterval(()=>{
	console.log('hello');
	count++;
	if(count===3){
		clearInterval(timer)
	}
},2000);

//clearInterval(count);

(3)立即执行定时器

开启 
let timer = setlmmediate(回调函数)

清除

clearlmmediate(timer)

开启

process.nextTick(回调函数)

setImmediate在事件队列的最前边,process.nextTick在主程序的后边,时间对列的前边

 

7.文件系统模块(fs)

服务器端的文件包含目录形式和文件形式

fs.statSync(目录的路径)  查看文件的状态

isDirectory()  是否为目录

isFile()是否为文件

fs.mkdirSync(目录的路径) 创建目录

fs.rmkdirSync(目录的路径) 删除目录

课后任务

(1)复习今天内容,整理思维导图

 (2)练习:开启一次性定时器,3秒以后创建1~10,10个目录;15秒以后再把这10个目录删除。

const fs = require('fs');
//开启一次性定时器
setTimeout(()=>{
	//创建10个目录
	for(let i=1;i<=10;i++){
		fs.mkdirSync('./'+i);
		//fs.rmkdirSync
	}
//创建成功后
//开启定时器15秒后删除
    setTimeout(()=>{
	删除1-10目录
	for(let i=1;i<=10;i++){
		fs.rmdirSync('./'+i);
	}
},15000);
},3000);

 (3)预习nodejs第3天  同步和异步

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值