express框架下载及使用

  • Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
  • Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从本质上来说,一个Express 应用就是在调用各种中间件。
  • 中间件本质上就是一个函数,中间件的功能包括:
    1. 执行任何代码。
    2. 修改请求和响应对象。
    3. 终结请求-响应循环。
    4. 调用堆栈中的下一个中间件。
  • 官网地址 : http://www.expressjs.com.cn/
  • 下载 : npm i -S express
var express = require('express');
// 创建一个app应用,所有功能方法都是基于这个app应用去使用的
var app = express();
//跟原生Node.js的优势,路由系统非常的完善。
//接收GET请求,第一个参数:就是请求的URL,第二个参数:就是回调函数
app.get('/index',(req,res,next)=>{
    res.send('<h1>hello中文</h1>');
});

app.get('/list',(req,res,next)=>{
    res.send('<h1>这是一个列表页</h1>');
});
//请求方法:POST\PUT\DELETE...
app.post('/register',(req,res,next)=>{
    res.send('hello register post');
});
app.put('/register',(req,res,next)=>{
    res.send('hello register put');
});
app.delete('/register',(req,res,next)=>{
    res.send('hello register delete');
});

// 所有的请求方法,all()
app.all('/register',(req,res,next)=>{
    res.send('hello register');
});

// 任何的请求方法和任何的url路由都可以触发回调
 app.all('*',(req,res,next)=>{
    res.send('404');
}); 

app.all(/^\/\d+$/,(req,res,next)=>{
    res.send('404');
});
app.listen(3000 , 'localhost',(err)=>{
    if(err){
        console.log('服务器启动失败');
        return;
    }
    console.log('服务器启动成功');
});

express中间件

  • express框架就是由各种中间件组成的,本身是极简的。

  • express中的中间件分类

    1. 应用级中间件 : app下使用的 app.use() app.get() app.post() app.all() …
    2. 路由级中间件 : express.router()
    3. 错误级中间件 : app.use((err,req,res,next)=>{});
    4. 内置中间件 : express.static :访问静态资源的 ; express.json、express.urlencoded : 能够拿到发送过来的数据
    5. 第三方中间件
  • 中间件的执行步骤 :

function foo(req,res,next){

    console.log(1);
    next();  // 去执行下一个中间件,如果不调用next()话,就不会去执行下一个中间件
    console.log(4);

}
function bar(req,res,next){
    console.log(2);
    next();
    console.log(5);
}

function baz(req,res,next){
    console.log(3);
    next();
    console.log(6);
}

app.use(foo);
app.use(bar);
app.use(baz);
//1   2   3    6     5    4  ,  中间件的执行顺序非常重要,顺序不同导致结果是不一样的,如果你希望这个中间件被触发的几率是大的,那么就应该让这个中间件写的前面。
  • express访问静态资源
// 参数:就是静态资源的根目录,当访问http://localhost:3000/logo.png -> 找 /public下的logo.png这个资源
app.use(express.static('public'));  //static()函数内部就会调用next(),所以往上面放,不会影响到后面的中间件。

//还可以设置虚拟目录  http://localhost:3000/a/b/c/logo.png -> 找 /public下的logo.png
app.use('/a/b/c',express.static('public')); 

express下面的req和res

  • req :

    1. req.url -> 请求url
    2. req.method -> 请求方法
    3. req.query -> 携带的参数(get请求的数据)
    4. req.body -> 数据(post请求的数据)
    5. req.headers -> 请求的头信息
  • res :

    1. res.send(); //发送内容(任何形式的)
    2. res.json({“code”:0});
    3. res.sendFile(’./a.txt’); // (要求必须是一个绝对路径)
    4. res.redirect(’/page/index’); // 重定向到其他url上
    5. res.render(); 渲染视图模板
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值