美文网首页
node.js 学习笔记 06

node.js 学习笔记 06

作者: GodlinE | 来源:发表于2017-06-19 10:00 被阅读0次

    use 的使用

    var express = require('express');
    var app = express();
    //当我们使用 use 匹配路由为 ```/``` 时,表示所有路径,并且可以省略路径,直接写回调函数
    //app.use('/',function(req,res){res.end('12345')});
    //app.use(function(req,res){});
    
    //当在使用 use 的时候,我们设置的匹配,只要设置路由的第一个地址```admin``` 就能匹配到,后面无论写多少拼接都可以匹配到
    app.use('/admin',function(req,res){
        res.write(req.originalUrl + '\n'); //admin/1234
        res.write(req.baseUrl + '\n');  //admin
        res.write(req.path + '\n');  //1234
        //因为 res.send 与 res.write 有冲突所以这里用 res.end
        res.end('success')  
    });
    app.use(function(req,res){
        res.end('12345');
        next();
    });
    app.listen(3000);
    
    • 为了提升复用性,我们在设置路由的时候,可以把回调函数抽离出来
    var express = require('express');
    var app = express();
    app.use(haha);
    app.listen(3000);
    function haha(req,res,next){
        res.end('success');
    }
    

    express 同时处理静态路由与中间件

    开发过程中,静态资源一般存放在 public 文件夹下
    并且如果有多种中间件,那么我们会把静态的中间件放在第一个位置,为了避免下面的中间件设置的时候,和静态的中间件冲突,避免被覆盖

    var express = require('express');
    var app = express();
    //处理静态路由,给静态路由匹配一个标识,然后只匹配这个标识的时候,我们访问的路由才是静态资源
    app.use('/jingtai',express.static('./public'));
    app.get('/',function(req,res){
        red.end('get-1111');
    })
    

    express 获取参数

    express 中的 res.send() send 方法会自动设置响应头

    • get 请求的获取参数
    var express = require('express');
    var app = express();
    app.get('/',function(req,res){
        //如果原生的 node 中获取参数,需要借助 url
        //但是在 express 中不需要,只需要调用 req.query 方法
        res.send(req.query)
    })
    
    • post 请求的获取参数
    var express = require('express');
    var body-parser = require('body-parser');
    var app = express();
    app.set('view engine','ejs');
    app.get('/',function(req,res){
        req.render('form');
    });
    app.use(bodyparser.urlencoded({extended:false}));
    app.post('/',function(req,res){
        //我们获取 post 请求参数
        //对于 post 请求,如果是上传,我们获取参数一般需要通过 formidable 这个包获取,不能通过 body-parser
        //如果是一般请求我们使用更轻量级的包 bodyu-pareser
        //需要在处理 post 请求之前设置对应的 url 进行编码,(通过 use 中间件)
        res.send(req.body);
    });
    app.listen(3000);
    

    相关文章

      网友评论

          本文标题:node.js 学习笔记 06

          本文链接:https://www.haomeiwen.com/subject/igcgqxtx.html