说到服务器,我突然想到以前学前端的时候,做好了一个静态页面之后,我输入的数据如何存到计算机上,又该如何拿到计算机里的数据呢?
今天我接触了nodejs这个东西,找到了当年的答案,也就是服务器:
这期我就带着大家来学习一下nodejs是如何拿到我们用户的请求和如何将将计算机上的资源返回给客户端的:
//1.1 导入fs模块
const fs = require('fs')
//1.2 导入path模块
const path = require('path')
//1.3 导入http模块
const http = require('http')
//2.1 创建一个服务器
const server = http.createServer()
//2.2 对服务器进行响应绑定
server.on('request',(req,res)=>{
//2.4 获取客户端的请求地址
const url = req.url
//3.1 打开文件获取对象并返回
fs.readFile(path.join(__dirname,url),'utf8',(err,dataStr)=>{
if(err){return res.end('404 not found')}
res.end(dataStr)
})
})
//2.3 打开服务器端口
server.listen(8080,()=>{
console.log('server running at http://127.0.0.1:8080');
})
先打开vscode,新建一个js文件,导入三个模块:fs(文件处理模块),path(路径处理模块),http(服务器模块);
先给大家聊聊一下思路吧:
先创建好一个服务器,端口为8080,服务器其实就是做到了一个字符串搬运的作用,创建服务器有三步,创建服务器对象,绑定响应函数,打开服务端口;
什么是服务器,什么又是客户端呢?
我们的电脑就是客户端,我们是从网上消费资源,那网上的资源又哪里来呢,服务器,所以服务器就是对外提供资源的计算机,如果我们的电脑能向网上提供资源,那么就可以说是一台服务器。
好了,创建好了服务器对象之后,我们在绑定函数里面完成"字符串的搬运任务",关于()=》{};叫做箭头函数,通常用在回调函数里面,前面一个括号是参数列表,后一个大括号就是我们要写的功能;
res和req是两个重要的作用对象,req是客户端请求对象,res就是我们提供给客户端的对象;
req.url()可以获取到客户端的请求地址,res.end()可以将我们的资源返回给客户端;
咋们在vscode的命令行中运行我们的代码: node .\serverTest2.js
然后点击下面的网址就会跳到浏览器里面了:
可以看到,服务器返回给我们的是404,那是因为我们没有输入文件的名字:
只需要添加我们的文件名,index.html;这个文件可以自己写,当然也可以关注我的公众号:代码栈,回复”前端“即可领取;
可以看到,我们就成功拿到了页面的资源:
好了,更多分享关注我,带你一步一步学nodejs.