如何用Node搭建一个完整http服务器

Node.js之所以受到广大Web开发者的青睐,与Node.js有能力自己搭建服务器是分不开的。
下面我们看看如何搭建一个入门的服务器

构建HTTP服务器

//引入http模块
//require:需要
let http = require('http')
//创建HTTP服务器

let server = http.createServer(function(req,res){
    
    
	//设置响应头
	res.writeHead(200,{
    
    
		'content-type':'text/plain'
	})
	//设置响应数据
	res.end('Hello Node.js')
})
//设置服务器端口
server.listen(2019,function(){
    
    
	console.log('服务器已经开启,端口是2019')
})

完成之后执行这段Node.js代码。结果如下:
在这里插入图片描述
然后打开浏览器输入:http://localhost:2019
结果如下:
在这里插入图片描述
这样我们就初步完成了服务器的搭建。

在上面这个HTTP服务器只是实现了将一行字符串的数据发送给浏览器,显然,如果服务器只能发送一些字符床,那几乎是不可用的。因此,我们要对上面这个服务器进行拓展。

比如通过Node.js的文件读取模块,读取文件,再把它发送给浏览器是一个不错的选择,让我们看看怎么实现,将文件读取,发送给浏览器。
直接上代码:

// 引入http模块
//require:需要
let http = require('http')
//引入文件模块
let fs = require('fs')
//创建HTTP服务器
let server = http.createServer(function(req,res){
    
    
	//设置响应头
	//注意这里的响应头的改动
	res.writeHead(200,{
    
    
		'content-type':'text/html'
	})
	//读取文件数据
	let data = fs.readFileSync('./index.html')
	//设置响应数据
	res.write(data)
	res.end()
})
//设置服务器端口
server.listen(2019,function(){
    
    
	console.log('服务器已经开启,端口是2019')
})

这样我们就能实现读取文件然后发送给浏览器了。
当然你得在同级目录中创建一个名为index.html的文件,写入以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <p>hello node.js 为了区别第一个服务器的,我们多写点文字</p>
</body>
</html>

然后运行程序,打开浏览器输入:http://localhost:2019
结果如下:
在这里插入图片描述
需要说明一下,我们将头部信息中的content-type修改为text/html,content-type的作用就是用来表示服务器传输的数据类型,服务器或者客户端按照这个类型做出响应的解析。如果将它修改为text/plain,浏览器中将显示index.html中的所有代码。

这样我们就实现了,能够读取文件发送给客户端的服务器了,但是我们并没有做任何路由处理,就是无论在浏览器中输入什么URL都将返回同样的内容——index.html。
后面我会继续更新,实现一个完整的服务器。
更新文章:一步一步教你用Node实现完整的http服务端
另外说一下,笔者资历尚浅,如有错误或者不足之处请见谅。

猜你喜欢

转载自blog.csdn.net/weixin_43482353/article/details/102764726
今日推荐