node读取html文件

node和Apache是没有web容器的,node的目录下的同级文件是无法使用/filename进行访问的,因为node没有根目录门也没用web容器!

简单解释一下上面的话

比如我的node项目在d盘的nodedemo文件夹下file.js,同级目录下有index.html

file.js监听的端口是3001,可以使用127.0.0.1:3001进行访问node项目,但是这个index.html怎么访问呢?

经受Apache的洗脑,有同学会自作聪明,加/filename访问,即127.0.0.1:3001/index.html,发现这样做是不行的!因为ndoe没有web容器,没有web容器,没有web容器!重要的说三遍!那么这个问题如何解决呢!

首先我们会用到一个fs模块!就像http模块,这里的fs是文件系统模块!

代码实例

file.js.

//引入模块
const http =require("http");
//引入文件模块
const fs= require("fs");
//创建服务器
const server = http.createServer(function(req,res){
	//设置响应头
	res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"})
	//请求的路由地址
	if(req.url == "/" || req.url=="/index.html"){
		fs.readFile("index.html",function(err,data){
			//设置响应头
			res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
			//加载的数据结束
			res.end(data)
		})
	}
	else{
		res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
			//加载的数据结束
			res.end('<h1> 所需内容未找到404 </h1>')
	}
})
//监听端口
server.listen(3001,"127.0.0.1")

这样通过url路由访问127.0.0.1/或者127.0.0.1/index.html就可以访问到同级的index.html文件了!

下面简单解释一下这个fs.readFile(读取文件)

上述代码中看到请求的路由(req.url)后的读取文件

代码分析

		fs.readFile("index.html",function(err,data){
			//设置响应头
			res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
			//加载的数据结束
			res.end(data)
		})

需要找到读取的文件(路径很重要,不啊哟搞错了,这里是相对路径),然后一个回调函数,这个函数有两个参数err和data,

err表示错误,data表示这个加载的文件的数据!

设置http的响应头,res.end(data)页面输出加载的内容并结束!

简单的文件加载搞定,下面一篇我们继续介绍文件加载进阶篇!

本博客所有文章如无特别注明均为原创。作者:十月梦想复制或转载请以超链接形式注明转自 十月梦想博客
原文地址《node读取html文件
分享到:更多

相关推荐

未登录,暂时无法评论和查看评论!

点击这里给我发消息点击此处联系博主!