Node(3) Node 模块化

一、模块

模块:node开发者读部分内容进行格式化整理的模板。模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合;在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。

二、内置模块

内置模块:nodejs 编写者,自己编写在nodejs 中的模块,nodejs 本身包含的模块。

Let’s Coding:
	// require 导入模块
	const tt = require('fs');
	// unlink('路径',回调函数);
	// 注意:当前目录下是否存在test.txt文件
	tt.unlink('test.txt',(err) => {
		if(err) throw err;
		console.log('成功删除文件');
	});

  1. fs模块

    fs 模块:File System 模块,内含对文件的所有操作;

    Let’s Coding:
    
    // 1. fs.readFile();
    	// fs.readFile(路径,编码格式,回调函数)
    	const fs = require('fs');
    	// 注意:当前目录下是否存在test.txt文件
    	fs.readFile('test.txt','utf-8',(err,data) => {
    		console.log(data);
    	});
    
    // 2. fs.writeFile();
    	// 声明好一段字符串
    	let str = `one two three`;
    	// fs.writeFile(路径,写入的数据,回调函数)
    		// 文件不存在时,自动创建;
    		// 写入文件时,覆盖已存在内容;
    	fs.writeFile('test.txt',str,(err) => {
    		if(err == null){
    			console.log('success');
    		}else{
    			console.log(err);
    		}
    	});
    	
    // 文件的异步操作
    	fs.readFile('test.txt','utf-8',(err,data) => {
    		console.log('after');		// 后执行的代码
    		console.log(data);
    	});
    	console.log('before');			// 先执行的代码
    // 文件的同步操作
    	console.log('first step');
    	// 同步操作
    	let content = fs.readFileSync('test.txt','utf-8');
    	console.log(content);
    	console.log('third step');
    
  2. path模块

    path 模块:path 模块,路径模块,获取文件路径;

    相对路径:从当前目录出发寻找的路径;

    绝对路径:绝对指定路径,指定磁盘下指定文件;

    Let’s Coding:
    
    // __dirname			:获取当前文件所处文件夹绝对路径
    console.log(__dirname);
    // __filename			:获取当前的文件的绝对路径
    console.log(__filename);
    
    // 1.path.join()		:路径拼接
    	// 导入path模块
    	const PATH = require('path');
    	// 输出目录下Test文件夹下的test.txt文件的绝对路径;		
    	console.log(PATH.join(__dirname,'Test','test.txt'))
    
    
  3. http 模块

    http 模块:http模块,服务器模块,搭建一个服务器;

    Let’s Coding:
    // 1.http 搭建服务器
    	// (1).导入 http 模块
    	const HTTP = require('http');
    	// (2).创建 http 服务器
    	HTTP.createServer((request,response)=>{
    		// (3).返回服务器内容
    		// 注意:当返回中文时,注意乱码问题;
    		respone.setHeader('Content-Type','text/html;charset-utf-8');
    		response.end('Win');
    	});
    	// (4).开启服务器
    	server.listen(8080,()=>{
    		console.log('Server runing...');
    	});
    
    
  4. fs + path +http 结合
    Let’s Coding:
    // 1.导入模块
    const FILESYSTEM	= require('fs')		;
    const HTTP 			= require('http')	;
    const PATH			= reqiore('path')	;
    // 2.搭建服务器
    const SERVER =HTTP.createServer((request,response)=>{
    	// 3.获取文件路径
    	const FILEPATH 	= PATH.join(__dirname,index.html); 
    	// 读取HTML文件
    	FILESYSTEM.readFile(FILEPATH,'utf-8',(err,data)=>{
    		// 返回数据
    		if(err == null){
    			response.end(data);
    		}
    		// 报错处理
    		else{
    			response.end('404');
    		}
    	});
    });
    // 4.开启服务器
    SERVER.listen(8080,()=>{
    	console.log('Win');
    })
    

三、第三方模块

第三方模块:非 nodejs 自带的模块;

  1. Crawler 爬虫模块

    crawler :使用npm下载一个crawler模块;

    Let’s Coding:
    // 1.下载文件
    var Crawler 	= require('crawler');
    var fs 			= require('fs')		;
    var client = new Crawler({
    	encoding:null,
    	jQuery:false,
    	callback:function(error,response,done){
    		if(error){console.log(error);}
    		else{
    			var $ = response.$;
    			fs.writeFile('路径',$('标签名').text(),(err)->{
    				if(err){console.log(err)};				
    			});
    		}
    		done();
    	}
    });
    c.queue('url')		// url 路径
    
    // 2.下载图片
    var Crawler 	= require('crawler');
    var fs 			= require('fs')		;
    var client = new Crawler({
    	encoding:null,
    	jQuery:false,
    	callback:function(error,response,done){
    		if(error){console.log(error);}
    		else{
    			fs.writeFileStream(response.options.filename).write(response.body);
    		}
    		done();
    	}
    });
    c.queue({
    	uri:"",								// 下载地址
    	filename:'',						// 保存的文件名
    	headers:{'user-Agent':'requests'}	// 伪装客户端
    })
    
    // 3.下载视频
    var Crawler 	= require('crawler');
    var fs 			= require('fs')		;
    var client = new Crawler({
    	encoding:null,
    	jQuery:false,
    	callback:function(error,response,done){
    		if(error){console.log(error);}
    		else{
    			fs.createWriteStream(response.options.filename).write(response,body);
    		}
    		done();
    	}
    });
    c.queue({
    	uri:"",								// 下载地址
    	filename:'',						// 保存的文件名
    	headers:{'user-Agent':'requests'}	// 伪装客户端
    })
    
    
  2. express 模块

    express 模块:搭建服务器模块

    Let’s Coding:
    
    // 1.创建静态服务器
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)将 www 文件下的所有内容开放
    	SERVER.use(express.static('www'));
    	// (4)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 2. express 实现 get 接口
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)get 接口实现
    	SERVER.get('./joke',(req,res)=>{
    		// 获取数据库信息
    		let data = 'content';
    		// 返回数据
    		res.rend(data);			
    	});
    	// (4)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 3. express 返回 .json数据
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)get 接口实现
    	SERVER.get('./json',(req,res)=>{
    		// 获取数据库信息
    		let data = 'content';
    		// 返回数据 —— {}	对象自动转化为 json 文件 ;
    		res.rend({
    			data:data,
    			code:'ok',
    			msg:'Success'
    		});			
    	});
    	// (4)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});	
    
    // 4. express 实现 get (传参)接口
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)get 接口实现
    	SERVER.get('./test',(req,res)=>{
    		// get 传入的参数通过 req 获取(传参的时候:参数命名testData)
    		let data = req.query.testData + 'You Win!';
    		// 返回数据
    		res.rend(data);			
    	});
    	// (4)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 5. express 实现 post 接口
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)get 接口实现
    	SERVER.post('./pose',(req,res)=>{
    		// 返回数据
    		res.rend('Success');			
    	});
    	// (4)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 5. express 实现 post (参数)接口
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	const BODYPARSER = require('body-parser');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)第三方插件获取post参数
    	SERVER.use(bodyParser.urlencoded({extended:false}));
    	// (4)get 接口实现
    	SERVER.post('./pose',(req,res)=>{
    		// 获取 post 请求的参数 —— body-parser (通过 npm i body-parser)
    		let data = req.body.testData;			
    		// 返回数据
    		res.rend(data + 'Success');			
    	});
    	// (5)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 6.返回一个值是json格式字符串的接口
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	const BODYPARSER = require('body-parser');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)第三方插件获取post参数
    	SERVER.use(bodyParser.urlencoded({extended:false}));
    	// (4)get 接口实现
    	SERVER.post('./pose',(req,res)=>{
    		/* 
    			设置返回——响应头
    				Content-Type:返回类型;
    				text/json	:应头值;
    		*/
    		res.setHeader('Content-Type','text/json');		
    		// 返回数据
    		res.rend(data + 'Success');			
    	});
    	// (5)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 7.带有get传参的接口
    	
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)get 接口实现
    	SERVER.get('./getTest',(req,res)=>{
    		console.log(req.query);		
    		// 获取传入的参数
    		console.log(req.query.dataTest);	
    		res.send('Success');	
    	});
    	// (4)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    
    // 8.post 传文本参数的接口
    
    	// (1)导入 express 模块
    	const EXPRESS = require('express');
    	const BODYPARSER = require('body-parser');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)第三方插件获取post参数
    	SERVER.use(bodyParser.urlencoded({extended:false}));
    	// (4)get 接口实现
    	SERVER.post('./Check',(req,res)=>{
    		// 获取 post 请求的参数 —— body-parser (通过 npm i body-parser)
    		let data = req.body;	
    		if(req.body.username == '111111' && req.body.password == '111111'){
    			console.log('Success');
    			res.send('register success.');	
    		}else{
    			console.log('Defeat');
    			res.send('password false...');	
    		}
    	});
    	// (5)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    	
    // 9.post 传文件参数的接口
    
    	// (1)导入 express 模块
    	const EXPRESS 	= require('express');
    	const MULTER	= require('multer');
    	// (2)创建服务器
    	const SERVER = express();
    	// (3)第三方模块
    	var upload = MULTER(dest:'uploads/');
    	// (4)get 接口实现
    	SERVER.post('./Regist',upload.single('userfile'),(req,res)=>{
    		// req.file ——> userfile 文件
    		let userfile = req.file;	
    		console.log(userfile);
    		console.log(req.body);//	{filename:'picture', ... }
    	});
    	
    	// (5)开启服务器
    	SERVER.listen(8080,() => {
    		console.log('Server Running...');
    	});
    

结语:问渠那得清如许?唯有源头活水来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值