nodejs模块_1_自定义/分类/全局函数/querystring/URL

3.模块

         模块就是一个封装好的功能体

         在nodejs下,模块分为自定义模块、核心模块(官方提供)、第三方模块

3.1 自定义模块

   在nodejs下,任意一个js文件都是一个模块,文件中的代码默认被一个构造函数所包含

(function(exprots,require,module,__filename,__dirname){

  //程序员编写代码

})

__filename 

当前模块的完整路径和文件名称

__dirname

当前模块的完整路径

require()

引入一个模块 ('./***.js')

module

指代当前的模块对象

module.exports

当前模块导出的对象,包含供其它模块使用的属性和方法

exprots

等价于module.exprots

3.2 模块分类

 

以路径开头

不以路径开头

文件模块

require('./circle.js') 常用于用于自定义的模块,如果后缀名是js,可以省略

require('url') 用于引入官方提供的核心模块

目录模块

require('./02_2') 在02_2目录下寻找index.js;找不到会到package.json中寻找main属性对应的文件,找不到会去引入index.js文件

require('04_2')会自动到当前目录下的node_module中寻找目录模块04_2,如果找不到会到上一级目录下寻找,直到顶级目录。常用于第三方模

3.3 npm和包

         包(package)是一个目录模块,里面包含多个文件,其中有一个文件命名为package.json,是包说明文件,含有包的信息

         npm:包管理工具,安装nodejs时附带安装,用于包管理,包括下载,上次,升级等 官网:www.npmjs.com

(1)切换目录:  cd 完整路径        如果进入其它盘符  e/d: 回车

                                     进入指定目录,按住shift键,在空白区域右键单击,选择  在此处打开powershell

(2)使用npm 下载安装第三方包

                   npm install 包名称

(3)生成package.json      

                   npm init -y   自动生成一个package.json文件,后期使用npm安装的包都会记录到这个文件中

                   npm install       自动安装package.json文件中的记录的包

3.4 全局函数

        parseInt/parseFloat/encodeURI/decodeURI/isNaN/isFinite/eval

(1)一次性定时器

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

      间隔时间到了会执行回调函数,单位是毫秒

清除 clearTimeout(timer);  清除一次性定时器

var time3=setTimeout(function(){

         console.log(' 1  哎呀,糟了,TNT 炸了');

},3000)

//clearTimeout(time3);

(2)周期性定时器

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

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

清除  clearInterval(timer)  清除周期性定时器

var timer=setInterval(function(){

         console.log('嘟!——警告!警告!TNT 炸了!——');},1500);

//clearInterval(timer)

//练习:使用周期性定时器,每个3秒钟打印一次,打印3次以后清除定时器

var i=0;

var timer=setInterval(function(){

         console.log('TNT 第 '+i+' 次微笑');

    i++;

         if(i==3){

                   clearInterval(timer);

         }

},3000);

(3)立即执行定时器(主要是在服务器端使用)

开启  var timer=setImmediate(回调函数);

    //回调函数会放入到队列中

  //当主线程执行完,才会执行队列的内容

清除  clearImmediate(timer);

var timer=setImmediate(function(){

console.log('立即执行处决---->查询数据库!');

});   //clearImmediate(timer);

console.log('连接数据库');

process.nextick(回调函数);

//在主程序的末尾执行(执行在setImmediate前)

process.nextTick(function(){

         console.log('操作数据');

});

3.4 querystring模块——查询字符串

         querystring属于核心模块,nodejs官方提供的,可以直接引入,不需要创建

         查询字符串:浏览器向服务器发送请求,传递数据的一种方式

parse()

将查询字符串格式化为对象

stringify()

将对象转换称查询字符串

//练习:获取百度查询中查询字符串中的关键字 e=utf-8&tn=baidu&wd=电脑

const querystring=require('querystring');

var str='e=utf-8&tn=baidu&wd=电脑';

var obj=querystring.parse(str);

console.log(obj.wd);

//var str2=querystring.stringify(obj);

//console.log(str2);

3.5 URL模块

         parse()  将url 格式化为对象    http://www.codeboy.com:80/product/detail.html?lid=5&name=dell'

protocol

协议

http

hostname

服务器域名/IP地址

www.codeboy.com

port

端口号

80

pathname

文件在服务器上的路径

/product/detail.html

query

查询字符串

lid=5&name=dell

format(

将对象转成url

 

                   query 属性对应的是对象

// 获取浏览器传输的数据

var url=require('url');

var querystring=require('querystring');

var str='https://tmooc.cn:3000/web/1903.html?sid=10&course=javascript';

//字符串转为对象

var obj=url.parse(str);

console.log(obj);

var str2=obj.query;

//将查询字符串转换为对象

var obj2=querystring.parse(str2);

console.log(obj2.sid,obj2.course);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值