通过nodejs 服务器读取HTML文件渲染到页面的方法


Posted in NodeJs onMay 17, 2018

1.分别简单实现三个备用页面。

login.html页面

index.html页面

代码片段:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
<style>
.center {
  margin: auto;
  width: 60%;
  border: 3px solid #73AD21;
  padding: 10px;
}
</style>
</head>
<body>

<h2>元素居中对齐</h2>
<p>水平居中块级元素 (如 div), 可以使用 margin: auto;</p>

<div class="center">
 <p><b>注意: </b>使用 margin:auto 无法兼容 IE8, 除非 !DOCTYPE 已经声明。</p>
</div>

</body>
</html>

notFount.html页面

<!DOCTYPE HTML>
<html>
<head>
<script>

</script>
<style>
.center {
  margin: auto;
  width: 60%;
  border: 3px solid #73AD21;
  padding: 10px;
	color:red;
}
</style>
</head>
<body>

<div class ="center" >404 Not Fount</div>

</body>
</html>

2.修改创建的nodejs 服务器页面,对不同地址的请求做出不同的响应页面。

在url地址判断中添加,文件读取代码,以实现读取定义的html页面。

声明文件系统对象:

// 声明文件操作系统对象 
  var fs = require('fs');

实现文件内容读取并渲染到页面

if(url ==='/'){ 
  //response.writeHead(响应状态码,响应头对象): 发送一个响应头给请求。 
  response.writeHead(200,{'Content-Type':'text/html'}) 
  // 如果url=‘/' ,读取指定文件下的html文件,渲染到页面。 
  fs.readFile('./practice/login.html','utf-8',function(err,data){ 
  if(err){ 
  throw err ; 
  } 
  response.end(data); 
  }); 
}

完整代码:

/**
		
	1.使用 HTTP 服务器与客户端交互,需要 require('http')。
		声明http协议
	*/
	var http = require('http');
	
	
	// 声明文件操作系统对象
	var fs = require('fs');
	/**
	2.获取服务器对象
		1.通过 http.createServer([requestListener]) 创建一个服务

		requestListener <Function>
		返回: <http.Server>
		返回一个新建的 http.Server 实例。
		对于服务端来说,主要做三件事:
		1.接受客户端发出的请求。
		2.处理客户端发来的请求。
		3.向客户端发送响应。
	*/
	
	var server = http.createServer();

	/**
	3.声明端口号,开启服务。
		server.listen([port][, host][, backlog][, callback])

		port <number> :端口号
		host <string> :主机ip
		backlog <number> server.listen() 函数的通用参数
		callback <Function> server.listen() 函数的通用参数
		Returns: <net.Server>
		启动一个TCP服务监听输入的port和host。

		如果port省略或是0,系统会随意分配一个在'listening'事件触发后能被server.address().port检索的无用端口。

		如果host省略,如果IPv6可用,服务器将会接收基于unspecified IPv6 address (::)的连接,否则接收基于unspecified IPv4 address (0.0.0.0)的连接
	
	*/
	server.listen(9001, function(){
		 console.log('服务器正在端口号:9001上运行......');
	})
	
	
	/**
	4.给server 实例对象添加request请求事件,该请求事件是所有请求的入口。
		任何请求都会触发改事件,然后执行事件对应的处理函数。
	
		server.on('request',function(){
			 console.log('收到客户端发出的请求.......');
		});
	*/

	
	/**
	5.设置请求处理函数。
		请求回调处理函数需要接收两个参数。
		request :request是一个请求对象,可以拿到当前浏览器请求的一些信息。
			eg:请求路径,请求方法等
		response: response是一个响应对象,可以用来给请求发送响应。
	
	*/
	server.on('request',function(request,response){
		
		var url = request.url;
		if(url ==='/'){
			//response.writeHead(响应状态码,响应头对象): 发送一个响应头给请求。
			response.writeHead(200,{'Content-Type':'text/html'})
			// 如果url=‘/' ,读取指定文件下的html文件,渲染到页面。
			fs.readFile('./practice/login.html','utf-8',function(err,data){
				if(err){
					throw err ;
				}
				response.end(data);
			});
		
		}else if(url === '/login'){
			response.writeHead(200,{'Content-Type':'text/html'});
			// 如果url=‘/' ,读取指定文件下的html文件,渲染到页面。
			fs.readFile('./practice/login.html','utf-8',function(err,data){
				if(err){
					throw err ;
				}
				response.end(data);
			});
		}else if(url === '/index'){
			response.writeHead(200,{'Content-Type':'text/html'});
			// 如果url=‘/' ,读取指定文件下的html文件,渲染到页面。
			fs.readFile('./practice/index.html','utf-8',function(err,data){
				if(err){
					throw err ;
				}
				response.end(data);
			});
		}else{
			response.writeHead(200,{'Content-Type':'text/html'});
			// 如果url=‘/' ,读取指定文件下的html文件,渲染到页面。
			fs.readFile('./practice/notFount.html','utf-8',function(err,data){
				if(err){
					throw err ;
				}
				response.end(data);
			});
		}
		
	});

最终实现效果:

开启nodejs服务器,在地址栏中输入:127.0.0.0.1:9001或127.0.0.0.1:9001/login

通过nodejs 服务器读取HTML文件渲染到页面的方法

在地址栏中输入:127.0.0.0.1:9001/index

通过nodejs 服务器读取HTML文件渲染到页面的方法

在地址栏中输入:127.0.0.0.1:9001/其他内容

通过nodejs 服务器读取HTML文件渲染到页面的方法

以上这篇通过nodejs 服务器读取HTML文件渲染到页面的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
NodeJS学习笔记之MongoDB模块
Jan 13 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
nodejs和react实现即时通讯简易聊天室功能
Aug 21 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
浅谈使用nodejs搭建web服务器的过程
Jul 20 NodeJs
解决nodejs的npm命令无反应的问题
May 17 #NodeJs
Mac下通过brew安装指定版本的nodejs教程
May 17 #NodeJs
对mac下nodejs 更新到最新版本的最新方法(推荐)
May 17 #NodeJs
nodejs前端模板引擎swig入门详解
May 15 #NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 #NodeJs
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
May 15 #NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 #NodeJs
You might like
Protoss建筑一览
2020/03/14 星际争霸
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python实现微信机器人的方法
2019/09/06 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
python 如何对logging日志封装
2020/12/02 Python
台湾生鲜宅配:大口市集
2017/10/14 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
const和static readonly区别
2013/05/20 面试题
学生会主席就职演讲稿
2014/01/14 职场文书
环卫处个人工作总结
2015/03/04 职场文书
首都博物馆观后感
2015/06/05 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js