express框架

express框架
    
    基于Node.js平台,快速、开放,极简的WEB开发框架
    属于是第三方模块,需要先去下载安装
        npm install express
    网址:www.expressjs.com.cn
 
1.创建WEB服务器
    express()    创建WEB服务器
    listen()        设置端口
 
2.路由
    用于监听特定的请求;
    路由包含三部分:请求的方法、请求的URL、回调函数
    res  响应对象
        res.send()    设置响应内容并发送
        res.redirect()    设置响应的重定向
        res.sendFile()    设置响应的文件,注意事项:必须使用绝对路径    __dirname
    
    req  请求对象
        req.url    获取请求的URL
        req.method    获取请求的方法
        req.query    获取 get 传递的参数
          req.params    获取params传递的参数
传参方式
格式
路由获取
get传递
http://127.0.0.1:3000/mysearch?kw=dell
req.query
{kw: 'dell'}
params传递
http://127.0.0.1:3000/mysearch/dell
req.params
需要设置参数名
{kw: 'dell'}
post传递
网址中不可见
http://127.0.0.1:3000/mysearch
需要使用中间插件转对象
req.body
{kw:'dell'}

 

练习:添加路由(get  /login),响应登录的网页login.html,点击提交向服务器发请求(get   /mylogin),添加路由,监听按钮提交的请求,获取传递的参数,响应 '登录成功,欢迎:xxx'
 
 
 
const express = require('express')
const app = express()
app.listen(3000,()=>{
    console.log('服务器已启动')
})
//路由(get /login),响应login.html文件
app.get('/login',(req,res)=>{
    res.sendFile(__dirname+'/login.html')
})
//添加路由,监听按钮提交的请求(get /mylogin)
app.get('/mylogin',(req,res)=>{
    //获取get传递的参数
    console.log(req.query)
    res.send('登录成功,欢迎: '+req.query.user)
})
 
<h1>用户登录</h1>
<form method="get" action="/mylogin">
    用户 <input type="text" name="user">
 
    密码 <input type="password" name="pwd">
 
    <input type="submit">
</form>
 
 
路由中间件
 
    需要使用中间插件将post传参转为对象
 
app.use(express.urlencoded({
     extended:true   //告诉内部是否使用第三方模块转为对象
})
 
 
路由器
    
    用于管理一组路由,最终被WEB服务器所使用
 
 
路由器
1.创建路由器对象
const r = express.Router()
2.添加路由
3.暴露路由器对象
module.exports=r
WEB服务器引入并挂载
app.use('/分组名称',引入的路由器)
最终路由访问形式
http://127.0.0.1:3000/分组名称/路由的URL

 

中间件
 
    用来拦截对服务器请求
        中间件分为应用级中间件、路由级中间件、内置中间件、错误处理中间件、第三方中间件
     
    1.应用级中间件
        也称为自定义中间件,就是一个函数,一旦拦截到自动调用函数
 
app.use( 拦截的URL,函数 )
function  函数(req,res,next) {
    next()  //往后执行,可能是下一个中间件或者路由
}
    2.路由级中间件
        路由器的使用
        app.use(拦截的URL,引入的路由器)
        一旦拦截到以后,会到指定的路由器下查找路由
 
    3.内置中间件
        express提供的中间件,可以直接使用
        1.将post传递参数转为对象
 
    动态资源:根据传递的参数不同,响应的结果也不一样(数据库的数据)
    静态资源:每次请求,响应结果都是同样的(文件)
          
        2.托管静态资源
            浏览器端如果要请求静态资源(html,css,js,图像...),不需要通过路由响应,而是自动的查找
        app.use( express.static('托管的目录'))
 
posted on 2022-07-28 10:00  天天下雨  阅读(61)  评论(0编辑  收藏  举报