'express'

express是后台框架

  • 帮我们解决了手动搭建服务,处理复杂的逻辑
  • express 是一个函数,执行后返回的是一个监听函数
  • get 要求路径必须绝对匹配到,use匹配开头即可
1
2
npm init -y
npm install express --save

postman 服务端APIs模拟请求工具

1
2
请求API命令行
$ curl -X POST http://localhost:8080/home

express 提供的属性

1
2
3
4
req.path
req.query
req.method
req.headers

路径参数params

  • :id 表示站位必须要有
    1
    app.get('/article/:id',callback)

listen

1
2
3
4
5
6
app.listen(3000);//可以直接使用app监听端口号,如果没有找到对应的逻辑 会出现cannot [request.method]/[pathname]
/*app.listen=function () {
let server = require('http').createServer(this);
server.listen(...arguments);
};*/

all

1
2
3
4
// all 代表所有匹配的方法,*代表所有路径都可以匹配到,一般用来配置404页面,放到所有路由最下面,否则会被截断
app.all('/*',function (req,res) {
res.end('404')
});

use 叫中间件 , 路由

use 叫中间件 , 路由

  • 默认不写路径热呢请求都能进行匹配

  • 中间件在路由最上面执行,先执行中间件 ,再执行路由
  1. 可以写路径,还可以不写路径,不写路径默认是/
  2. 可以拓展属性和方法 类似于 req.path req.query
  3. 可以决定是否向下执行next,若果调用next则可以向下执行
  4. 做权限判断

  5. 从中间件道路有的过程reg和res是同一个,而且中间件可以写多个
    1
    2
    3
    4
    5
    6
    app.use((req,res,next)=>{
    //next 是一个函数,如果调用则据需执行
    console.log('hello');
    res.end('66666'); //如果调用end代码不会继续执行
    next(); //如果要使用use扩展属性或者方法,一定调用next
    });

send()

  1. 可以自动发送json
  2. 可以自动处理编码类型
  3. 数字会转化成状态文本

用send取代end

express 提供了静态服务中间件

1
app.use(express.static('public')); //静态文件中间件可以配置多个

sendFile

  • 向客户端返回单一页面
    1
    2
    res.sendFile(path.resolve('./index.html'));
    res.sendFile('./index.html',{root:__dirname});

静态服务中间件

app.use(express.static(路径))

动态渲染ejs

  • ejs ->基于html,可以渲染动态数据

    1
    $ npm install ejs --save
  • jade

ejs –> 后端渲染``

  • <%js代码%>
  • <%=渲染的数据%>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    app.set('views','view'); //默认为views文件,需要手动更改
    app.set('view engine','html'); //更改渲染的引擎,默认为ejs
    app.engine('html',require('ejs').__express); //对设置后的引擎
    app.get('/',(req,res)=>{
    res.render('index.html', //会默认去views查找
    //param1:要渲染的模板
    // 渲染时采用什么数据
    {
    data:'666666!',
    arr:[1,2,3]
    })
    });

body-parser 第三方form数据解析插件

1
$npm install body-parser --save