NodejsでのExpressでのget値とpost値の取得とセッション検証の方法を例で説明します

小云云
リリース: 2017-12-23 09:08:39
オリジナル
3039 人が閲覧しました

この記事では、node.js での Express の使用法をさらに深めていきます。主に、nodejs での get 値と post 値の取得とセッション検証を使用する方法を紹介します。値とセッションの検証を例の形で投稿します。具体的な操作手順と注意事項を参考にしていただければ幸いです。

getとpostで渡された値を取得する

getで渡された値をオブジェクトに入れる


req.query
ログイン後にコピー

postで渡された値を


req.body
ログイン後にコピー

メソッドに入れる取得方法は以下の通りです。 オブジェクトを取得します 内容は同じです。たとえば、ID の値が以前に渡された場合、nodejs は req.body.id によってそれを取得できます

エクスプレスセッション検証

最初のステップは、Cookie とセッションモジュールをインストールし、

を導入することです。


var session = require('express-session');
var cookieParser = require('cookie-parser');
ログイン後にコピー

2番目の部分、ExpressはCookieとセッションを適用します


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
  } //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
}));
ログイン後にコピー

3番目のステップ、リクエスト時にインターセプトして処理します


app.use(function(req, res, next) {
  if (!req.session.user) {
    if (req.url == "/login") {
      next(); //如果请求的地址是登录则通过,进行下一个请求
    } else {
      res.redirect('/login');//跳转到登录页面
    }
  } else if (req.session.user) {
    next();//如果已经登录,则可以进入
  }
});
ログイン後にコピー

ログインしていない場合、ルートは自動的にポイントされます/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,自动跳转页面
    res.redirect('/admin');
  } else {
    res.redirect('/login');
  }
});
app.get('/logout', function(req, res) {//做的登出页面
  req.session.user = null;
  res.redirect('/login');
});
ログイン後にコピー

関連する推奨事項:
express に基づいた WebSocket を使用した Node.js の詳細な説明

Express.Router を使用した Node.js の詳細な説明

Express開発の歴史

以上がNodejsでのExpressでのget値とpost値の取得とセッション検証の方法を例で説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート