node_get and post request parameters

Excuting an order:

npm install mysql --save

nodemon ./bin/www

 

app.js

var express = require('express');
var path = require('path');
var app = express();
var sqlQuery = require('./lcMysql');

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(express.static(path.join(__dirname, 'public')));

// 搜索首页
app.get('/', (req, res) => {
  res.render('index.ejs')
})

// 自己封装提取get方式表单数据
app.get('/search', (req, res) => {
  // console.log(req.url);   url地址
  // 提取?后面的字符串
  let queryStr = req.url.split('?')[1];
  // 对表单提交的键值对进行分割
  let keyValueArr = queryStr.split('&');
  // 设置一个query对象,将键值对以对象的属性形式进行保存
  let query = {};
  keyValueArr.forEach(function (item, i) {
    // searchKey=admin,进行分割
    let key = item.split('=')[0];
    let value = item.split('=')[1];
    query[key] = value;
  })
  console.log(query);
  console.log(query.searchKey);
  console.log(query.username);
  res.send("搜索页面到啦");
})


// 使用express自带的get获取数据方式
// express在req对象上直接封装好了query属性
app.get('/search1', async (req, res) => {
  console.log(req.query);
  // 根据req.query.searchKey的内容,查找电影
  let strSql = "select * from book where bookname like '%" + req.query.searchKey + "%'";
  let result = await sqlQuery(strSql);
  res.json(Array.from(result));
  // res.send("搜索页面2到");
})

// ajax页面
app.get('/ajax', (req, res) => {
  res.render('ajax.ejs');
})


module.exports = app;

index.ejs

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>搜索首页</title>
</head>

<body>
  <!-- 
    action:为提交到服务器的地址
   -->
  <form action="/search1" method="get">
    <input type="text" name="searchKey">
    <input type="text" name="username">
    <input type="submit" value="搜索">
  </form>
</body>

</html>

ajaxnejs

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ajax做的get请求</title>
</head>

<body>
    <script src="/js/jquery.min.js"></script>
    <script>
        let httpUrl = '/search1?searchKey=鲁滨逊';
        $.get(httpUrl).then(function (res) {
            console.log(res);
            res.forEach((item, i) => {
                $('body').append("<h1>" + item.bookname + "</h1>")
            })
        })
    </script>
</body>

</html>

 

post request:

No information in url

Parse the data submitted by the post (only if you have this can be parsed): app.use(express.urlencoded());

// 获取post提交的请求
app.post('/search1', (req, res) => {
  //   console.log(req.query);
  // 注意:post提交的数据不在query属性上,在body上,而且需要app.use(express.urlencoded());进行解析
  console.log(req.body);
  res.send("我到了");
})







// 显示登录页
app.get('/login', (req, res) => {
  res.render('login');
})

// 处理登录请求
app.post('/login', async (req, res) => {
  // 获取用户名和密码
  let username = req.body.username;
  let password = req.body.password;
  // 查询数据库是否有此用户名和密码
  let sqlStr = 'select * from user where username = ? and password = ?';
  let arr = [username, password];
  let result = await sqlQuery(sqlStr, arr);
  if (result.length == 0) {
    res.send("登录成功");
  } else {
    res.send("登录失败");
  }
})

 

 

Guess you like

Origin blog.csdn.net/small_rain_/article/details/112910286