溫馨提示×

溫馨提示×

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

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

nodejs使用express獲取get和post傳值及session驗證的方法

發(fā)布時間:2020-09-06 07:02:54 來源:腳本之家 閱讀:443 作者:專注前端30年 欄目:web開發(fā)

本文實例講述了nodejs使用express獲取get和post傳值及session驗證的方法。分享給大家供大家參考,具體如下:

獲取get和post傳值

get的傳值被放入了一個對象中

req.query

post的傳值被放入了

req.body

獲取方式如獲取對象的內(nèi)容方式一樣。比如,前面?zhèn)魅肓艘粋€id的值,nodejs獲取就可以req.body.id即可

express的session驗證

第一步安裝cookie和session的模塊,并引入

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

第二部,express應(yīng)用cookie和session

app.use(cookieParser());
app.use(session({
  resave: true, // don't save session if unmodified
  saveUninitialized: false, // don't create session until something stored
  secret: 'admin', //密鑰
  name: 'testapp', //這里的name值得是cookie的name,默認cookie的name是:connect.sid
  cookie: {
    maxAge: 80000
  } //設(shè)置maxAge是80000ms,即80s后session和相應(yīng)的cookie失效過期
}));

第三步,在請求時,攔截處理

app.use(function(req, res, next) {
  if (!req.session.user) {
    if (req.url == "/login") {
      next(); //如果請求的地址是登錄則通過,進行下一個請求
    } else {
      res.redirect('/login');//跳轉(zhuǎn)到登錄頁面
    }
  } else if (req.session.user) {
    next();//如果已經(jīng)登錄,則可以進入
  }
});

現(xiàn)在訪問頁面如果沒有登錄,會自動將路由指向/login頁面,最后一步就是在路由里面處理了

app.get('/login', function(req, res) {
  res.render("login");
});
app.post('/login', function(req, res) {
  if (req.body) {//判斷時候有傳值
    var user = {
      'username': req.body.username//獲取用戶名并賦值,這里之前可以自己做判斷
    };
    req.session.user = user;//賦值session,自動跳轉(zhuǎn)頁面
    res.redirect('/admin');
  } else {
    res.redirect('/login');
  }
});
app.get('/logout', function(req, res) {//做的登出頁面
  req.session.user = null;
  res.redirect('/login');
});

希望本文所述對大家nodejs程序設(shè)計有所幫助。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI