日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

node03

發(fā)布時間:2024/1/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node03 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、express處理post請求

借助body-parse中間件,其實最終我們也不會使用這個

對于get請求,無需中間件,用req.query即可返回相應的數(shù)據(jù)

但是post我們嘗試借助中間件處理

const express = require('express') const es = require('express-static') const bp = require("body-parser")let server = express()server.use(bp.urlencoded({extended: false,//是否啟用擴展模式limit: 2 * 1024 * 1024//限制接收post數(shù)據(jù)的大小,100k默認 })) //中間處理,共有2個參數(shù) server.use('/', function (req, res) {console.log(req.body) })server.listen(8080, () => console.log('server is running'))<!DOCTYPE html> <html lang="en"><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> <script src="./ajax.js"></script><body><form action="http://localhost:8080" method="post">用戶名:<input type="text" name="user" id="user"><br />密碼:<input type="passsword" name="pwd" id="pwd"><input type="submit" value="登錄" id="login"></form></body> <script>window.onload = function () { }</script></html> const express = require('express') const es = require('express-static') const bp = require("body-parser")let server = express()server.use(bp.urlencoded({extended: false,//是否啟用擴展模式limit: 2 * 1024 * 1024//限制接收post數(shù)據(jù)的大小,100k默認 })) //中間處理,共有2個參數(shù) server.use('/', function (req, res, next) {//use的第一個參數(shù)缺省,將響應所有的路徑 console.log(req.body)req.a = 12//next適用來表明需要進行下一步的鏈式操作的,否則直接結束響應//進行鏈式操作的use的url務必一致,本函數(shù)體內數(shù)據(jù)在下一個相應的use內仍有效 next() })server.use('/',function(){console.log(req.a) })server.listen(8080, () => console.log('server is running'))

?

2、嘗試編寫中間件

const express = require('express') const es = require('express-static') const bp = require("body-parser") const qs = require("querystring")let server = express()//自己編寫的處理post請求的中間件 server.use(function (req, res, next) {let str = ''req.on('data', function (data) {str += data})req.on('end', function () {req.body = qs.parse(str)next()}) })server.use('/', function (req, res) {console.log(req.body)console.log('finished') })server.listen(8080, () => console.log('server is running'))

?

2)進行封裝

const qs = require("querystring")module.exports=function (req, res, next) {let str = ''req.on('data', function (data) {str += data})req.on('end', function () {req.body = qs.parse(str)next()})}

?

3)總結

const qs = require("querystring")module.exports=function (req, res, next) {let str = ''req.on('data', function (data) {str += data})req.on('end', function () {req.body = qs.parse(str)next()})}

?

4、cookie/session

session存儲在服務端,比較安全,seession是基于cookie存在的

const qs = require("querystring")module.exports=function (req, res, next) {let str = ''req.on('data', function (data) {str += data})req.on('end', function () {req.body = qs.parse(str)next()})}

操作這兩個存儲需要使用到的中間件是cookie-parser cookie-session

?

簡單地使用cookie

const express = require('express')let server = express()server.use('/', function (req, res) {res.cookie('user', 'cc', {path: '/',//哪個目錄下可以讀取這個cookiemaxAge: 30 * 24 * 3600 * 1000//一個月有效時間})//共三個參數(shù):鍵、值、設置其他cookie參數(shù)的對象 res.send('ok啦') })server.listen(8080, function () {console.log('server is running') })

使用簽名的cookie

const express = require('express') const cp = require('cookie-parser')let server = express()server.use(cp('esfwegethg'))//密鑰,必須和下面的secret對應,可省略//cookie是可以向上訪問的 server.use('/', function (req, res) {req.secret='esfwegethg'//進行簽名,可以防止用戶端篡改res.cookie('user', 'blue', { signed: true })//s開頭,進行了簽名 console.log(req.cookies)//這里打印的是沒有進行簽名的cookieconsole.log(req.signedCookies)//這里打印的是進行簽名的cookieres.send('ok啦') })server.listen(8080, function () {console.log('server is running') })

?

?

res.clearCookie('鍵’)//刪除cookie

?

使用cookie-encrypter中間件能更好地為cookie進行加密解密

但cookie一般不加密,session是強制我們進行加密的

?

2)使用session

const express = require('express') const cp = require('cookie-parser') const cs = require('cookie-session')let server = express()server.use(cp()) server.use(cs({
  name:"cc"//自定義sesion id 鍵名//必須,強制加密以保證session數(shù)據(jù)安全keys: ['aaa', 'bbb', 'ccc'],
   maxAge:24*3600*1000//設置session有效期 }))//cookie是可以向上訪問的 server.use('/', function (req, res) {if (!req.session["count"]) {//記錄訪問次數(shù)req.session["count"] = 1} else {req.session["count"]++}console.log(req.session['count'])res.send('ok啦') })server.listen(8080, function () {console.log('server is running') })

使用后cookie中會存有兩個cookie,一個session,即session id,一個session.sig,是一個簽名,

刪除session:

delete req.session

?

轉載于:https://www.cnblogs.com/Tanqurey/p/10776542.html

總結

以上是生活随笔為你收集整理的node03的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。