express框架

162 阅读3分钟

博学谷it技术支持

express框架是什么?

Express 是一个基于 [Node]平台的Web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用。
语法:npm i express

express框架特性

  • 提供了简洁的路由定义方式
  • 对获取 http 请求参数进行了简化处理
  • 模板引擎支持程度高,方便渲染动态HTML页面
  • 拥有中间件机制有效控制 HTTP 请求
  • 拥有大量第三方中间件对功能进行扩展

具体步骤语法

1.安装express框架 npm i express 2.引入express
let express = require('express')
注意:这里一般都是直接用express命名,一般引入什么就用什么命名
3、使用静态资源路径
app.use(express.static('node_modules'));
若设置静态资源路径后,就默认’/‘表示为‘node_modules’目录
4.使用这个web服务器对象,开启一个web服务,并监听一个端口号(端口号是自定义的)

中间件

1、定义

中间件就是一堆方法,可以接收客户端发来的请求、可以对请求做出响应,也可以将请求继续交给下一个中间件继续处理。

2、app.use中间件用法

app.use 匹配所有的请求方式,可以直接传入请求处理函数,代表接收所有的请求。所有的请求,都会先走use,作用是拦截器。

3.中间件的作用

路由保护\

const express = require('express')
const app = express();
app.use('/admin',(req,res,next)=>{
  let login = false;
   if(login){
    next()
}else{
    res.send('您未登录')
}
})
app.get('/admin',(req,res,next)=>{
  res,sedn('您已登录')
})


网站维护\

app.use('/admin',(req,res,next)=>{   
  res.send('网站正在维护')
})

自定义404页面\

app.use((req,res,next)=>{   
  res.send('网址未找到')
})

更改状态码\

app.use((req,res,next)=>{   
  res.status(404).send('网址未找到')
})

捕捉错误的错误处理中间件\

app.get('/index',(req,res)=>{
        throw new Error('程序发生错误')//当抛出错误时,会自动执行错误中间件
       
})
//错误处理中间件,还是用use
app.use((err,req,res,next)=>{
        res.status(500).send(err.message)
})
//err.message就是错误的内容'程序发生错误'


路由

客户端(包括 Web前端、移动端等等)向服务端发起请求时包含两个元素:路径(URI)以及HTTP请求方式(包括 get、post等)。路径和请求方法合起来一般被称为 API端点(Endpoint)。而服务器根据客户端访问的端点选择相应处理逻辑的机制就叫路由。
1、get请求接口

(1)get请求参数的获取

req.qurey接收前端传递的GET请求参数,框架内部会将GET参数转换为对象并返回

(2)定义get请求接口

req是请求对象,里面保存的是客户端传过来的请求参数。

res是响应对象,用于给客户端响应结果。

res.send()将结果返回给前端。

2、定义post请求接口

post请求参数的获取

req.body接收前端传递过来的POST请求参数。

接收POST请求参数,服务器需要进行设置。

通过express.json()中间件,解析表单中的JSON格式数据。

通过express.urlencoded()中间件,解析表单中的url-encoded格式数据。

简单案例


var express = require('express'); 

var app = express(); app.get('/', function (req, res) { res.send('Hello World'); }) 

var server = app.listen(8081, function () { 

var host = server.address().address 
var port = server.address().port 

console.log("应用实例,访问地址为 http://%s:%s", host, port) })

添加一些功能来处理更多的http请求

var express = require('express'); 
var app = express(); 

// 主页输出 "Hello World" 
app.get('/', function (req, res) { 
console.log("主页 GET 请求"); 
res.send('Hello GET'); }) 

// POST 请求 app.post('/', function (req, res) { console.log("主页 POST 请求");
res.send('Hello POST'); }) 

// /del_user 页面响应 app.get('/del_user', function (req, res) { 
console.log("/del_user 响应 DELETE 请求");
res.send('删除页面'); }) 

// /list_user 页面 GET 请求 app.get('/list_user', function (req, res) { 
console.log("/list_user GET 请求"); 
res.send('用户列表页面'); })

// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求 app.get('/ab*cd', function(req, res) {
console.log("/ab*cd GET 请求"); 
res.send('正则匹配'); }) 

var server = app.listen(8081, function () { 

var host = server.address().address var port = server.address().port 

console.log("应用实例,访问地址为 http://%s:%s", host, port) })