91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs中的get/post請求方法是什么

發布時間:2021-12-09 09:35:21 來源:億速云 閱讀:126 作者:iii 欄目:web開發

這篇文章主要介紹“nodejs中的get/post請求方法是什么”,在日常操作中,相信很多人在nodejs中的get/post請求方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”nodejs中的get/post請求方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

nodejs中的get/post請求方法是什么

一、node熱重啟

1.安裝

npm i nodemon

2.運行啟動

nodemon .bin/www

二、關于get請求

一般在網站開發中,get都用作數據獲取和查詢,類似于數據庫中的查詢操作,當服務器解析前臺資源后即傳輸相應內容;而查詢字符串是在URL上進行的,形如:

http://localhost:8080/login?goods1=0001&goods2=0002

獲取前臺get請求

通過req.query可以獲得用戶發送的get請求,之后通過node操作將相應數據返回給用戶。

如果發送的是:

http://localhost:8080/login?goods1=0001&goods2=0002

響應的話則通過:

req.query

他會獲取到全部數據,或

req.query.goods1
req.query.goods2

來單獨或去每一個數據。總之不同的需求對應不同的業務,大家按自己的需要來獲取;

實例

下面通過一個實例來對獲取get參數進行一個總結:

HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="http://localhost:8080/login" method="get">
            用戶:
            <input type="text" name="user" id="user" placeholder="用戶名"/>
            <br>
            密碼:
            <input type="password" name="password" id="password" placeholder="密碼"/>
            <br>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

node:

const express = require("express");
var app = express();

app.get("/",function(req,res){
    res.send("主頁");
});

app.get("/login",function(req,res){
    console.log(req.query);
    res.send("登錄路由,user為:"+req.query.user+"==>   password為:"+req.query.password);
});

app.listen(8080);

三、關于POST請求

post方法作為http請求很重要的一部分,幾乎所有的網站都有用到它,與get不同,post請求更像是在服務器上做修改操作,它一般用于數據資源的更新。 相比于get請求,post所請求的數據會更加安全。上一章中我們發現get請求會在地址欄顯示輸入的用戶名和密碼(有中文時會轉化為BASE64加密),而post請求則會將數據放入http包的包體中,這使得別人無法直接看到用戶名和密碼!

Express如何設置POST請求

1.首先我們得知道在form表單進行post請求,enctype屬性一般設置為“application/x-www-form-urlencoded”,如果設置成multipart/form-data,則多用于文件上傳,如下:

<form action="#" method="post" enctype="application/x-www-form-urlencoded">
</form>

2.設置解析body中間件

app.use(express.urlencoded())

3.獲取body數據

req.body.username
登陸案例:

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h2>登陸</h2>
    <form action="/login" method="POST">
        <div>
            用戶名:<input type="text" name="username">
        </div>
        <div>
            密碼:<input type="password" name="password">
        </div>
        <button>登陸</button>
    </form>
      
</body>
</html>

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')));
//解析post提交的數據
app.use(express.urlencoded())

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

//登陸頁
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("登陸成功")
  }

})


module.exports = app;

四、中間件

從字面意思,我們可以了解到它大概就是做中間代理操作,事實也是如此;大多數情況下,中間件就是在做接收到請求和發送響應中間的一系列操作。事實上,express是一個路由和中間件的web框架,Express 應用程序基本上是一系列中間件函數的調用。

1.瀏覽器發送請求

2.express接受請求

中間處理的過程

3.路由函數處理渲染(req,res)

4.res.render渲染

中間件函數可以執行以下任務:

  • 執行任何代碼。

  • 對請求和響應對象進行更改。

  • 結束請求/響應循環。

  • 調用堆棧中的下一個中間件函數。

中間件也分為應用層中間件、路由中間件、內置中間件、錯誤處理中間件和第三方中間件。下面分別對以下進行說明:

1.應用層中間件

應用級中間鍵綁定到app對象使用app.use和app.METHOD()-需要處理http請求的方法,例如GET、PUT、POST,將之前的get或者post替換為use就行。 例如下面實例:

const express=require("express");

var app=express();

//匹配路由之前的操作
app.use(function(req,res,next()){
    console.log("訪問之前");
});

app.get("/",function(req,res){
    res.send("主頁");
});

app.listen(8080);

這時我們會發現http://localhost:8080/地址一直在加載,但命令行里顯示了“訪問之前”,說明程序并不會同步執行,如果使用next來是路由繼續向下匹配,那么就能又得到主頁數據了:

const express=require("express");

var app=express();

//匹配路由之前的操作
app.use(function(req,res,next){
    console.log("訪問之前");
    next();
});

app.get("/",function(req,res){
    res.send("主頁");
});

app.listen(8080);

當然也可以簡化寫法:

const express=require("express");

var app=express();

app.use(function(req,res,next){
    console.log("訪問之前");
    next();
},function(req,res){
    res.send("主頁");
});

app.listen(8080);

因此,在進行路由匹配之前或再錄又要繼續向下執行時想做個操作,那么應用層中間件無疑是好的選擇。

2.路由中間件

路由級中間件和應用級中間件類似,只不過他需要綁定express.Router();

var router = express.Router()

在匹配路由時,我們使用 router.use() 或 router.VERB() ,路由中間件結合多次callback可用于用戶登錄及用戶狀態檢測。

const express = require("express");
var app = express();
var router=express.Router();

router.use("/",function(req,res,next){
    console.log("匹配前");
    next();
});

router.use("/user",function(req,res,next){
    console.log("匹配地址:",req.originalUrl);
    next();
},function(req,res){
    res.send("用戶登錄");
});

app.use("/",router);

app.listen(8080);

總之在檢測用戶登錄和引導用戶應該訪問哪個頁面是,路由中間件絕對好用。

3.錯誤處理中間件

顧名思義,它是指當我們匹配不到路由時所執行的操作。錯誤處理中間件和其他中間件基本一樣,只不過其需要開發者提供4個自變量參數。

app.use((err, req, res, next) => {
        res.sendStatus(err.httpStatusCode).json(err);
});

一般情況下,我們把錯誤處理放在最下面,這樣我們即可對錯誤進行集中處理。

const express=require("express");

var app=express();

app.get("/",function(req,res,next){
    const err=new Error('Not Found');
    res.send("主頁");
    next(err);
});

app.use("/user",function(err,req,res,next){
    console.log("用戶登錄");
    next(err);
},function(req,res,next){
    res.send("用戶登錄");
    next();
});

app.use(function(req,res){
    res.status(404).send("未找到指定頁面");
});

app.listen(8080);

4.內置中間件

從版本4.x開始,Express不再依賴Content,也就是說Express以前的內置中間件作為單獨模塊,express.static是Express的唯一內置中間件。

express.static(root, [options]);

通過express.static我們可以指定要加載的靜態資源。

5.第三方中間件

形如之前我們的body-parser,采用引入外部模塊的方式來獲得更多的應用操作。如后期的cookie和session。

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');

到此,關于“nodejs中的get/post請求方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漠河县| 平遥县| 伽师县| 商洛市| 垣曲县| 绍兴市| 天津市| 靖边县| 金阳县| 咸宁市| 闻喜县| 隆安县| 晋州市| 廊坊市| 滕州市| 阳泉市| 宜良县| 青岛市| 和平区| 博罗县| 宁蒗| 玛多县| 芜湖市| 南宁市| 新晃| 罗平县| 晴隆县| 科技| 西盟| 永川市| 浏阳市| 缙云县| 万荣县| 华亭县| 吴川市| 扬中市| 万年县| 治多县| 沿河| 芜湖县| 平罗县|