模块
文章目录
- 模块
- 一、模块概述
- 二、默认构造函数
- 三、文件模块
- 四、目录模块
- 五、第三方模块
- 5.1 第三方模块网址
- 5.2 导入包操作
- 六、核心模块
- 6.1 查询字符串模块
- 6.2 URL模块
- 七、文件系统模块
- 7.1 创建目录
- 7.2 移除目录
- 7.3 读取目录
- 7.4 清空写入
- 7.5 文件检测
- 7.6 删除文件
- 7.7 追加写入
- 7.8 读取文件
一、模块概述
模块是一个预定义好的功能体,Nodejs里的每一个文件都是一个模块。其中分为自定义模块、官方提供的核心模块、第三方模块。
二、默认构造函数
文件中的代码默认被一个构造函数包含
(function(exports,require,module,__filename,__dirname){}
__filename : 当前文件的完整路径和文件名称
__dirname : 当前文件的完整路径
require : 用于引入模块的函数
module : 指代当前的模 ,包含module.exports方法
module.exports : 当前模块导出的公开属性和方法的对象exports : 等价于 module.exports
三、文件模块
文件模块常用于用户自定义模块,若以js后缀可省略
文件模块的引入:var req = require('./test.js');
四、目录模块
目录模块会在当前目录中寻找packge.json文件中的main属性对应的值,若不存在该文件时则自动搜索index.js文件
目录模块的引入:
main.js文件
//引入Test目录
var req = require('./Test');
req.fn(2,3);
- Test目录下包含myfn.js和package.json文件
myfn.js文件
//将fn()函数对外公开
module.export.fn = function(a,b){
console.log(a+b);
}
package.json文件
为了让main.js引入Test目录下的’myfn.js,需要package.json进行说明
{
"main":"myfn,js"
}
五、第三方模块
5.1 第三方模块网址
第三方的模块是由其他开发公司提供的开源模块,我们可以引入来使用它们的
5.2 导入包操作
powershell操作环境:
-
cd
到需要下载安装的目录路径 - 导入express包,输入
npm install express
- 在安装目录下生成node_modules文件夹,包含express包
- 使用不带路径的导入方式,
require('express')
六、核心模块
Nodejs官方提供的模块,无需创建可直接引入
6.1 查询字符串模块
querystring
浏览器发送请求,传递数据的方式
parse( ) 将查询字符串解析为对象
stringify( ) 将对象转为查询字符串
//将查询字符串解析为对象
const querystring = require('querystring');
var str = 'lid=10&name=huawei';
var obj = querystring.parse(str);
//将对象转换成查询字符串
var stu_obj = {
sid:1,
sname:'Tom',
age:16
};
var stu_str = querystring.stringify(stu_obj);
6.2 URL模块
url
parse( ) 将URL解析为对象
format( ) 将对象转成URLURL对象主要组成 :
protocol : 协议
hostname : 主机
port : 端口
pathname : 文件在服务器上的路径
query : 查询字符串
//引用url模块
const url = require('url');
//引用querystring模块
const querystring = require('querystring');
var str = 'https://www.tmooc.com:3080/course/web.html?cname=java&price=3200';
var url_obj = url.parse(str);//转成URL对象
var query = obj.query//获取URL对象中的query属性
var que_obj = querystring.parse(query);//属性值查询字符串转对象
七、文件系统模块
fs文件系统模块用于操作服务器的文件或目录,如创建目录,删除目录,读取目录,创建文件等
-Sync : 带有该后缀的函数为同步函数,会阻止后续代码执行
同步:阻止后续代码的执行,通过返回值获取函数
异步:不会阻止后续代码执行,通过回调函数获取函数,常用于耗时的操作
7.1 创建目录
fs.mkdir(将要创建目录路径,回调函数)
const fs = require('fs');
fs.mkdir('.myfs',(err)=>{
//检查目录是否创建成功
if(err) throw err;//存在错误就抛出
console.log("目录创建成功");
});
fs.mkdirSync(将要创建目录路径)
const fs = require('fs');
console,log(fs.mkdirSync('.myfs'));
7.2 移除目录
fs.rmdir(将要被移除目录路径,回调函数)
const fs = require('fs');
fs.rmdir('.myfs',(err)=>{
//检查目录是否创建成功
if(err) throw err;//存在错误就抛出
console.log("目录删除成功");
});
fs.rmdirSync(将要被移除目录路径)
7.3 读取目录
fs.readdir(读取的目录,回调函数)
const fs = require('fs');
fs.readdir('.myfs',(err,files)=>{
//files读取的结果
if(err) throw err;//存在错误就抛出
console.log(files);
});
fs.readdirSync(读取的目录)
const fs = require('fs');
console.log(fs.readdirSync('.myfs'));
7.4 清空写入
fs.writeFile(写入路径,数据,回调函数)
const fs = require('fs');
fs.writeFile('./first.txt','Hello!',(err)=>{
if(err) throw err;//存在错误就抛出
});
fs.writeFileSync(写入路径,数据)
7.5 文件检测
fs.existsSync(路径)
const fs = require('fs');
var exists = existsSync('./Demo.txt');
console.log(exists);
7.6 删除文件
fs.unlink(路径,回调函数)
const fs = require('fs');
fs.unlink('./Demo.js',(err)=>{
if(err) throw err;//存在错误就抛出
console.log('删除成功!');
});
fs.unlinkSync(路径)
const fs = require('fs');
fs.unlinkSync('./Demo.js');
7.7 追加写入
fs.appendFile(路径,数据,回调函数)
fs.appendFileSync(路径,数据)
.csv : 以.csv后缀名是Excel文件,常用于将文件导出
7.8 读取文件
fs.readFile(路径,回调函数)
fs.readFileSync(路径)
读取文件的数据格式为Buffer