Web前端之Node.js(3)——fs、http、express

一、express

1.文件系统模块——fs
(1)删除文件

 fs.unlink(路径, 回调函数)/unlinkSync(路径)

(2)判断文件是否存在

 fs.existsSync(路径)

(3)追加写入数据

 fs.appendFile(路径,数据,回调函数)
 fs.appendFileSync(路径,数据)

如果文件不存在会创建文件,如果文件已经存在,会在末尾追加写入数据。‘

写.csv后缀的文件,直接打开excel。

(4)读取文件

 fs.readFile(路径, 回调函数)/fs.readFile(路径)

读取的数据格式为buffer 【 buffer->string :buffer.toString() 】

练习:判断文件num.txt是否存在,如果不存在创建文件,写入数字0。读取文件的内容,执行自增,打印出来;把自增的结果再次写入到文件中。 全部使用同步操作。

const fs=require('fs');
var filename='./num.txt';
if(!fs.existsSync( filename)){
	fs.writeFileSync( filename,0);
}
fs.readFile( filename,(err,data)=>{
    if(err) throw err;
	data=data.toString();
	data++;
    fs.writeFile( filename,data,(err)=>{
    	if(err) throw err;
    });
});	

2.http协议
是浏览器和web服务器之间的通信协议
(1)通用头信息
Request URL: 请求的URL,向服务器端获取的内容

Request Method: 请求的方法 get/post
—— get获取内容,post常用于向服务器端传递安全较高数据

Status Code: 响应的状态码
2**: 服务器成功的响应
3**: 响应的重定向,跳转到另一个URL
4**: 客户端错误
5**: 服务器错误

Remote Address: 请求的服务器的IP地址和端口号

(2)响应头信息
Connection: keep-alive; 连接的方式:持续连接

Content-Type: 响应的文件类型

Transfer-Encoding: 响应时的传输方式,chunked(分段传输)

(3)请求头信息
Accpet: 客户端接受的文件类型有哪些
Connection: 客户端和服务器端的连接方式
User-Agent: 客户端使用的浏览器

(4)请求主体
可有可无,浏览器端向服务器端传递的数据

3.http模块
可以模拟浏览器向服务器端发送请求;也可以创建web服务器
(1)模拟浏览器
const http=require(‘http’);
http.get( url, callback )

//get 请求的方法,要获取
//第1个参数:请求的URL
//第2个参数:通过回调函数获取响应的内容
http.get('http://www.codeboy.com/index.html',(res)=>{ })

url 请求的url(接口)
callback 是回调函数,用来获取服务器端的响应
res 响应的对象
res.statusCode 响应的状态码
res.on(‘data’, (buf)=>{
通过事件来获取服务器端响应的数据,当有数据传递的时候,自动调用回调函数,把数据放入到buf中,格式为buffer
})

(2)创建web服务器
var server=http.createServer() //创建web服务器
server.listen(3000) //分配端口,监听3000端口的变化

server.listen(3000,()=>{
  console.log('web服务器创建成功');
});

server.on(‘request’, (req,res)=>{ })
//接收浏览器的请求,是事件的形式,一旦有请求,自动执行
req 请求的对象
url 请求的URL,用于告诉服务器要获取的内容
method 请求的方法,直接在地址栏输入默认都是get
headers 请求的头信息
res 响应的对象
writeHead(状态码, { }) 设置响应的状态码和头信息;如果要跳转需要设置Location属性。
write() 将响应的数据发送到浏览器中
end() 结束响应

练习1:创建web服务器,监听3001端口,使用事件获取浏览器的请求,打印请求的URL和请求的方法 05_webserver.js
http://127.0.0.1:3001/admin/login.html
http://127.0.0.1:3001/member/shopping.html
const http=require(‘http’);

//创建web服务器
var server=http.createServer();
//监听端口
server.listen(3001,()=>{
  console.log('web服务器创建成功');
});
server.on('request',(req,res)=>{
	console.log(req.url,req.method);
})

练习2:创建web服务器,监听端口3000,接收浏览器端的请求
请求的URL:/login 响应文本:this is login page
请求的URL:/member 响应文本:this is member page
请求的URL:/ 跳转到:/member
如果以上都没有匹配的URL, 响应文本: 404 not found

const http=require('http');
//创建web服务器
var server=http.createServer();
//监听端口
server.listen(3000,()=>{
  console.log('web服务器创建成功');
});
server.on('request',(req,res)=>{	
	var str=req.url;
	console.log(str);
	if(str=='/login')
		res.write('this is login page');
	else if(str=='/member')
		res.write('this is member page');
	else if(str=='/')
		res.writeHead(302,{Location:'/member'});
	else
		res.write('404 not found');
	res.end();
})

4.express框架
基于NODEJS,用于构建web服务器的框架。
官网:www.expressjs.com.cn
安装:npm install express

const express=require(‘express’); //引入下载的模块
var server=express(); //创建web服务器
server.listen(3000); //监听3000端口

(1)路由
浏览器向web服务器发送请求,web服务器会根据请求的URL和请求的方法来做出响应
res.send() 响应文本,每个路由中只能使用一次send

//路由
//使用get方法获取url为/login的内容
//get:请求的方法,可以使用post等...
//第1个参数:请求的url
//第2个参数:响应的内容
server.get('/login',(req,res)=>{
  console.log('获取了login的请求');
  //res是响应的对象
  //做出响应
  res.send('这是登录的页面');
  res.send('这是登录的页面');
});

二、课后任务:

(1)复习今天内容,整理思维导图
(2)练习
使用express创建web服务器,添加以下路由

get ‘/index’ 发送文本 ‘这是首页’
get ‘/login’ 发送文本 ‘这是注册页面’
post ‘/reg’ 发送文本 ‘注册成功’

const express=require('express');
var server=express();
server.listen(3000,()=>{
	console.log('创建服务器成功');
});
server.get('/index',(req,res)=>{
	res.send('这是首页');
});
server.get('/login',(req,res)=>{
	res.send('这是注册页面');
});
server.post('/reg',(req,res)=>{
  res.send('注册成功');
});

(3)预习express的中间件,浏览器向服务器传递数据的方式有哪些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值