nodejs文件的读取

版权声明:版权有就有吧。 https://blog.csdn.net/m0_38044453/article/details/83546149

同步读取数据

var fs = require('fs');
module.exports = {

	readfile:function(path){// 异步执行
		fs.readFile(path,function(err,data){
			if(err){
				console.log(err);
			}else{
				console.log(data.toString());	
			}
		});
		console.log('异步方法执行完毕。');
	},
	readfileSync:function(path){
		var data = fs.readFileSync(path,'utf-8');
		
		console.log(data);
		console.log('同步方法执行完毕');
	}

}
var http = require('http');

var optfile = require('./optfile.js');

http.createServer(function (request,response){
	response.writeHead(200, {'Contet-Type':'text/html;charset=utf-8'});
	
	if(request.url!=='/favicon.ico'){// 去除第二次重复请求
			
		optfile.readfileSync('./file/login.html');

		
		response.end('ok!');// 不写则没有http协议尾
	}	

}).listen(8000);

console.log('Server running at http://127.0.0.1:8000/');

异步读取数据

var http = require('http');

var optfile = require('./optfile.js');

http.createServer(function (request,response){
	response.writeHead(200, {'Contet-Type':'text/html;charset=utf-8'});
	
	if(request.url!=='/favicon.ico'){// 去除第二次重复请求
			
		//optfile.readfileSync('./file/login.html');
		
		optfile.readfile('./file/login.html');
		
		response.end('ok!');// 不写则没有http协议尾
		console.log('主程序执行完毕');
	}	

}).listen(8000);

console.log('Server running at http://127.0.0.1:8000/');

把读取的数据打印到前台

当我们按下面写的时候,会报错,已经结束了,才往页面写。

var http = require('http');

var indexfile = require('./readfile');

http.createServer(function (request,response){

	response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});

	if(request.url!=='/favicon.ico'){

		indexfile.readfile('./model/index.html',response);

		response.end('ok');
		console.log('主程序完毕');	
	}
}).listen("8000");

console.log("Server is 8000");
var fs = require('fs');

module.exports = {

	readfile:function(path,res){// 异步执行
		fs.readFile(path,function(err,data){
			if(err){
				console.log(err);
			}else{
				

				console.log(data.toString());
				res.write(data);
				
			}
		});
		console.log('异步方法执行完毕。');
	},
	readfileSync:function(path){
		var data = fs.readFileSync(path,'utf-8');
		
		console.log(data);
		console.log('同步方法执行完毕');
	}

}

采用闭包,回调函数

var http = require('http');

var indexfile = require('./readfile');

http.createServer(function (request,response){

	response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});

	if(request.url!=='/favicon.ico'){

		function recall(data){
			response.write(data);
			response.end('ok');
		}

		indexfile.readfile('./model/index.html',recall);

		console.log('主程序完毕');	
	}
}).listen("8000");

console.log("Server is 8000");
var fs = require('fs');

module.exports = {

	readfile:function(path,recall){// 异步执行
		fs.readFile(path,function(err,data){
			if(err){
				console.log(err);
			}else{

				console.log(data.toString());
				recall(data);
				
			}
		});
		console.log('异步方法执行完毕。');
	},
	readfileSync:function(path){
		var data = fs.readFileSync(path,'utf-8');
		
		console.log(data);
		console.log('同步方法执行完毕');
	}

}

跟路由整合

var http = require('http');

var url = require('url');

var router = require('./router');

http.createServer(function (request,response){

	response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});

	if(request.url!=='/favicon.ico'){// 去除第二次访问

		var pathname = url.parse(request.url).pathname;
		pathname = pathname.replace(/\//,'');// 替换掉前面的/

		router[pathname](request,response);

		console.log('主程序完毕');	
	}
}).listen("8000");

console.log("Server is 8000");
var indexfile = require('./readfile');

module.exports = {

	login:function(request,response){// 异步执行

		function recall(data){
			response.write(data);
			response.end('ok');
		}

		indexfile.readfile('./model/index.html',recall);

		console.log('login 路由 异步方法执行完毕。');
	},
	zhuce:function(request,response){

		function recall(data){
			response.write(data);
			response.end('ok');
		}

		indexfile.readfile('./model/index.html',recall);

		console.log('zhece 路由 异步方法执行完毕。');
	}

}
var fs = require('fs');

module.exports = {

	readfile:function(path,recall){// 异步执行
		fs.readFile(path,function(err,data){
			if(err){
				console.log(err);
			}else{

				console.log(data.toString());
				recall(data);
				
			}
		});
		console.log('异步方法执行完毕。');
	},
	readfileSync:function(path){
		var data = fs.readFileSync(path,'utf-8');
		
		console.log(data);
		console.log('同步方法执行完毕');
	}

}

猜你喜欢

转载自blog.csdn.net/m0_38044453/article/details/83546149