nodejs学习整理(二)

模块

模块分类:自定义模块-自己写的,核心模块-官方的,第三方模块-组织或个人公开的

nodejs会为每一个文件添加如下代码:
(function(exports,require,module,__dirname,__filename) { //代码 })
module:当前模块,也可理解为当前文件
module.exports:当前模块导出的对象
exports:与module.exports作用相同
require:用于引入模块
__dirname:当前模块的完整路径
__filename: 当前模块的完整路径及文件名

require的用法:

以路径开头 不以路径开头
文件类型 require(./1.js) 用于引入自己写的模块 require(‘querystring’);用于引入核心模块
目录类型 require(./01)自动寻找目录下的index.js,若找不到则到package.json找main属性下的文件 require(‘circle’)自动去当前目录下的node_modules目录下找circle目录,用于引入第三方模块

核心模块

1.querystring 查询字符串
(1)parse()

const querystring=require('querystring');
var str='ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E7%81%AB%E8%BD%A6&rsv_pq=87483eb30000706a&rsv_t=e9edM1ozsNGn4gDklFj4vFrwQ0BKI8dmVGIFndy4LM6GJmp3h5KsTFqqnGc&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=4&rsv_sug7=101&rsv_sug2=0&inputT=1185&rsv_sug4=1967';
var obj=querystring.parse(str);
console.log(obj);

1).用于解析浏览器提交的数据 2).返回值为对象
(2).stringify()

const querystring=require('querystring');
var person={
	name:'tom',
		age:18,
		sex:'男'
}
var str1=querystring.stringify(obj);
console.log(str1);

1)用于将对象转为查询字符串 2)返回值为字符串
2.url模块
1.parse() 将网址解析为对象
解析结果:
protocol 协议
hostname 主机
port 端口
pathname 路径
query 查询字符串 得到的query是一个对象
hash 哈希
2.format() 将对象转为网址

练习代码:

const url=require('url');
var str='http://www.tmooc.cn/course/101.html?lid=5&pname=dell#sale';
var obj=url.parse(str);
//console.log(obj);
var obj2={
	protocol:'http',
    hostname:'www.codebody.com',
    port:80,
		pathname:'/hom/detail.html',
		query:'lid=10&name=tom',
	hash:'One'
    
}
console.log(url.format(obj2));

query+url 解析浏览器提交的数据:

const url=require('url');
const querystring=require('querystring');
var str='http://www.tedu.cn/web/1809.html?sid=20&name=tom#detail';
var obj=url.parse(str);//得到包含query对象的对象
var obj2=querystring.parse(obj.query);//解析obj的对象成员query
console.log(`编号: ${obj2.sid}`);//得到query的sid
console.log(obj.query);//显示query {sid:20,name:'tom'}

猜你喜欢

转载自blog.csdn.net/qq_41002048/article/details/83626082