美文网首页
express如何获取请求参数

express如何获取请求参数

作者: 北piao青年 | 来源:发表于2020-07-27 22:17 被阅读0次

    声明:转载请注意出处
    技术交流:
    微信公众号:北piao青年
    EMAIL: hoojiaxin@hotmail.com

    获取GET请求参数

    1、关于get请求

    一般在web应用开发中,get都用作数据获取和查询,服务器根据查询请求的参数从数据库或其他地方查询数据,将数据返回给调用者;而查询的参数是在URL上进行的

    http://localhost:3000/login?username=david&password=123456
    

    2、获取前端get请求

    通过req.query可以获得用户发送的get请求,之后通过查询数据库将相应数据返回给调用者。

    http://localhost:3000/login?username=david&password=123456
    

    参数获取

    //req.query会获取全部的请求参数
    let params = req.query;
    //单独获取某一个参数
    let username = req.query.username;
    let password = req.query.password;
    
    

    3、GET请求实例

    需求:我们通过发送一个请求,携带参数username和password,在服务器解析后并返回

    定义请求路由

    app.get('/login',function(req,res,next){
      res.send(req.query)
    })
    
    1595756157171-aa901dc3-f223-4406-a6d3-42e2d867f28e.gif

    虽然获取get参数并不复杂,但使用频率却相当的高,对于任何技术我们都应该秉持认真的态度去了解和学习它。

    获取POST请求参数

    1、关于POST请求

    post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新。相比于get请求,post所请求的数据会更加安全。get请求会在地址栏url中显示输入的用户名和密码(有中文时会转化为BASE64加密),而post请求则会将数据放入http请求包的请求体中,这使得别人无法直接看到用户名和密码!

    2、Express如何设置POST请求

    2.1 前端使用POST方式请求

    设置form表单请求为post方法,enctype属性一般设置为“application/x-www-form-urlencoded”,如果设置成multipart/form-data,则多用于文件上传

    <form action="/login" method="post" enctype="application/x-www-form-urlencoded">
      
    </form>
    
    2.2 设置解析body中间件

    express 无法直接获取Post请求的参数,需要设置body解析中间件

    app.use(express.urlencoded())
    
    2.3 获取POST请求body数据
    app.post('/login',function(req,res,next){
      let username = req.body.username;
      let password = req.body.password;
      res.send(req.body)
    })
    

    3、POST请求案例

    需求:使用Post请求表单提交“用户名”和“密码”参数,服务器解析Post请求Body中的数据,并将参数返回

    登录页面login.ejs

    <!DOCTYPE html>
    <html>
      <head>
        <title>登录</title>
        <link rel='stylesheet' href='/stylesheets/style.css' />
      </head>
      <body>
        <div style="width:300px;text-align: center;">
          <h1>登录</h1>
          <form action="/login" method="POST" enctype="application/x-www-form-urlencoded">
            用户名:<input type="text" name="username"></br>
            密码:<input type="password" name="password"></br>
            <input type="submit" value="登录">
          </form>
        </div>
      </body>
    </html>
    
    

    创建接收请求的路由

    var express = require('express');
    var path = require('path');
    var app = express();
    
    // 设置模板引擎
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'ejs');
    
    //设置body解析中间件
    app.use(express.urlencoded())
    
    //接收/login GET请求,返回登录页面login.ejs
    app.get('/login',function(req,res,next){
     res.render('login')
    })
    
    //接收/login POST请求
    app.post('/login',function(req,res,next){
      let username = req.body.username;
      let password = req.body.password;
      res.send(req.body)
    })
    
    module.exports = app;
    
    
    1595758132194-4dff26ec-3640-480c-b24f-3495e04bace8.gif

    相关文章

      网友评论

          本文标题:express如何获取请求参数

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