Maison  >  Article  >  interface Web  >  nodejs obtient une session de requête

nodejs obtient une session de requête

WBOY
WBOYoriginal
2023-05-11 14:45:37818parcourir

Node.js est un environnement d'exécution JavaScript côté serveur rapide, multiplateforme, modulaire et capable de créer des applications côté serveur efficaces et stables. Lors du développement d'applications Web, SESSION sera utilisé, alors comment obtenir les informations de demande SESSION dans Node.js ? Cet article présentera comment obtenir la requête SESSION à partir des aspects du concept de SESSION, des modules correspondants de Session dans Node.js et des informations spécifiques à l'API.

1. Le concept de SESSION

SESSION est un mécanisme de requête croisée utilisé pour stocker les informations et les opérations des utilisateurs. En enregistrant la variable SESSION, les utilisateurs peuvent rester connectés lorsqu'ils visitent différentes pages du site Web et transférer des données entre différentes pages. . SESSION est une méthode de conservation de l'état côté serveur, c'est-à-dire attribuer un identifiant unique à chaque session, puis enregistrer l'identifiant sur le client (généralement dans le cookie du client) pour établir la communication et la communication entre le serveur et le client. Pour chaque nouvelle session, un nouvel identifiant est créé pour le suivi.

Dans le développement Web, SESSION peut être utilisé pour optimiser la sécurité, améliorer l'expérience utilisateur, répondre aux besoins spécifiques des utilisateurs, etc.

2. L'utilisation de Session dans Node.js

Dans Node.js, il existe un module SESSION express-session couramment utilisé, qui peut ajouter la prise en charge de session aux applications Express. Autant comprendre comment l'utiliser :

1. Installez le module express-session

Entrez la commande suivante dans la ligne de commande :

npm install express-session

2. Introduisez express-session dans le projet :

Dans votre projet, ajoutez le code suivant :

var express = require('express');
var session = require('express-session');
var app = express();

3. Utilisez un middleware de session express

Dans votre projet, ajoutez le code suivant :

app.use(session({
secret: 'keyboard cat',//secret的值建议使用随机字符串
cookie: { maxAge: 60000 },
resave: true,
saveUninitialized: true
}))

Parmi eux :

  • secret est la clé utilisée pour le cryptage de l'ID de session, vous pouvez la définir sur will
  • cookie Le maxAge in est la période de validité qui définit l'ID de session
  • resave : true signifie que la session est restaurée pour chaque demande, qu'elle change ou non.
  • saveUninitialized:true signifie que l'utilisateur n'est pas connecté, et la session et le cookie seront réinitialisés à chaque demande

4 Définir et obtenir SESSION

Dans votre projet, vous pouvez définir et obtenir SESSION via le code suivant :

Set:

req.session.userName="tom";

Get:

var userName = req.session.userName;

Ensuite, nous utiliserons des exemples pour expliquer comment obtenir les informations de SESSION de la requête dans Node.js.

3. Informations spécifiques à l'API

Afin de mieux comprendre comment obtenir les informations de la requête SESSION, comprenons d'abord l'API correspondant à SESSION dans Node.js.

req.session

Il s'agit du middleware de requête de session, qui peut réaliser le contrôle de conversation en écrivant req.session. L'exemple d'utilisation est :

req.session.userName='xiaoming';

Le code ci-dessus implémente l'ajout de userName à la session. Dans Express, les informations de conversation sont stockées dans une session, qui est un objet pouvant être manipulé comme un objet JavaScript normal.

req.session.destroy

Cet attribut indique que lorsque l'utilisateur quitte, les données enregistrées dans la session seront effacées. Exemple d'utilisation :

req.session.destroy(function(err) {
  // cannot access session here
})

Lorsque la session est détruite, la fonction de rappel sera exécutée.

4. Exemple de démonstration

Ensuite, nous utilisons un exemple pour démontrer comment obtenir les informations de SESSION de la demande.

1. Créez le projet

Tout d'abord, initialisez le projet et créez le fichier main.js :

mkdir node-app && cd node-app
npm init
touch main.js

2. Installez express et express-session et importez-les

Entrez les commandes suivantes sur la ligne de commande pour installer express et express-session et importez-les :

npm install express --save
npm install express-session --save

Écrivez le code suivant dans main.js :

const express = require('express')
const session = require('express-session')

const app = express()

app.use(session({
  secret: 'keyboard cat',//secret的值建议使用随机字符串
  cookie: { maxAge: 60000 },
  resave: true,
  saveUninitialized: true
}))

app.get('/login', (req, res) => {
  req.session.userName = 'Qiming'
  res.send('login success')
})

app.get('/home', (req, res) => {
  let userName = req.session.userName
  if (userName) {
    res.send(`welcome ${userName}`)
  } else {
    res.send('please login first')
  }
})

const server = app.listen(3000, () => {
  console.log(`app is running at http://localhost:${server.address().port}`)
})

Dans le code ci-dessus :

  • Introduisez d'abord les modules express et express-session
  • Créez l'objet application app et ajoutez le middleware de session au milieu
  • Lorsque vous y accédez Lorsque /login, stockez le nom d'utilisateur dans req.session.userName
  • Lors de l'accès à /home, essayez d'obtenir le nom d'utilisateur à partir de req.session, s'il existe, accueillez et donnez un message, sinon invitez l'utilisateur doit d'abord se connecter
  • Démarrage de l'application Écoutez sur le port 3000 et affichez les informations du journal de démarrage

3 Exécutez le projet et testez

Exécutez la commande suivante dans le terminal :

node main.js

Ouvrez le navigateur, visitez http : //localhost:3000/login, et obtenez le message « login success », accédez à http://localhost:3000/home et obtenez le message « bienvenue Qiming », indiquant que la SESSION a été obtenue avec succès.

5. Résumé

Dans cet article, nous avons découvert le concept de SESSION, l'utilisation de SESSION dans Node.js, des informations spécifiques sur l'API et un exemple de démonstration. Nous espérons aider tout le monde à mieux comprendre comment l'obtenir dans Node. js Demander des informations sur la SESSION. Dans les projets réels, la manière d'utiliser SESSION doit être décidée en fonction de la situation réelle et peut être mise en œuvre en fonction des besoins de l'entreprise.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn