通过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 相关文章推荐
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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
PHP 替换模板变量实现步骤
2009/08/24 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
简单实现php上传文件功能
2017/09/21 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
Vue实现验证码功能
2019/12/03 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
使用django自带的user做外键的方法
2020/11/30 Python
比利时家具购买网站:Home24
2019/01/03 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
数据库方面面试题
2012/04/22 面试题
厂长岗位职责
2014/02/19 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL