03 Nodejs-模块

模块

一、模块概述

模块是一个预定义好的功能体,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.jspackage.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操作环境:

  1. cd 到需要下载安装的目录路径
  2. 导入express包,输入npm install express
  3. 在安装目录下生成node_modules文件夹,包含express包
  4. 使用不带路径的导入方式,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( ) 将对象转成URL

URL对象主要组成 :

​ 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

发布了108 篇原创文章 · 获赞 167 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42873753/article/details/104195481