Maison interface Web Questions et réponses frontales nodejs obtient une session de requête

nodejs obtient une session de requête

May 11, 2023 pm 02:45 PM

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
Copier après la connexion

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();
Copier après la connexion

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
}))
Copier après la connexion

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";
Copier après la connexion

Get:

var userName = req.session.userName;
Copier après la connexion

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';
Copier après la connexion

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
})
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

É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}`)
})
Copier après la connexion

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
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Expliquez le concept de chargement paresseux. Expliquez le concept de chargement paresseux. Mar 13, 2025 pm 07:47 PM

Le chargement paresseux retarde le chargement du contenu jusqu'à ce qu'il soit nécessaire, améliorant les performances du Web et l'expérience utilisateur en réduisant les temps de chargement initiaux et la charge du serveur.

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.

See all articles