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服务端
另外说一下,笔者资历尚浅,如有错误或者不足之处请见谅。