通过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的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
基于html5和nodejs相结合实现websocket即使通讯
Nov 19 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 NodeJs
nodejs实现范围请求的实现代码
Oct 12 NodeJs
Nodejs实现用户注册功能
Apr 14 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&amp;&amp;mysql)六
2006/10/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
JS 对象介绍
2010/01/20 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
ES6中class类用法实例浅析
2017/04/06 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
easy_install python包安装管理工具介绍
2013/02/10 Python
python创建关联数组(字典)的方法
2015/05/04 Python
Python 导入文件过程图解
2019/10/15 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
九年级政治教学反思
2014/02/06 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
导师就业推荐信范文
2014/05/22 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
python基础之匿名函数详解
2021/04/21 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
基于Python实现一个春节倒计时脚本
2022/01/22 Python