Пример экспресс-сессии с нуля

Пример экспресс-сессии с нуля — это тема, которую мы обсудим сегодня. Как мы все знаем, HTTP — это протокол без сохранения состояния. Нам нужно идентифицировать запрос и связывать каждый запрос с пользователем, если пользователь уже прибыл раньше. Поэтому для сохранения данных на нескольких страницах мы используем сеансы.

Учебное пособие по экспресс-сеансу

Наиболее частый сценарий использования сеанса это Система аутентификации . Когда пользователь входит в любую систему, он может видеть свою активность по своему идентификатору. Поэтому нам нужно сохранить идентификатор пользователя в сеансе, а затем запросить этот идентификатор для отображения различной информации об этом пользователе.

Пример экспресс-сеанса

Мы рассмотрим пример проверки формы. Мы будем отображать сообщение проверки через сеанс на веб-интерфейсе. Итак, приступим.

Шаг 1. Создайте папку и установите зависимости.

Создайте папку проекта, войдите в нее и нажмите следующую команду.

 npm init 

Он создаст файл package.json и запишет в него следующий код.

 {"name": "sessionexpress", "version"  : "1.0.0", "description": "Express Sesssion Tutorial", "main": "server.js", "scripts": {"test": "echo " Ошибка: не указан тест  "&& exit 1  "," start ":" nodemon server "}," dependencies ": {" body-parser ":" * "," cookie-parser ":" * "," express ":" * "," express-hbs "  : "*", "path": "*", "express-session": "*", "express-validator": "*"}, "devDependencies": {"nodemon": "*"}, "ключевые слова  ": [" Express "," Node.js "," Session "]," author ":" Krunal Lathiya "," license ":" ISC "} 

Будет установлен express web framework, express-session, и другие пакеты.

Шаг 2. Создайте файл server.js и запустите сервер узла.

В корневом каталоге создайте один файл с именем server.js.

//server.jsconst express = require ('express'); const cookeParser = require ('cookie-parser'); const bodyParser = require  ('body-parser'); const hbs = require ('express-hbs'); const expressValidator = require ('экспресс-валидатор'); const session = require ('express-session'); const app = express ()  ; const PORT = 3000; app.get ('/', function (req, res) {res.send ('hello');}); app.listen (PORT, function () {console.log ('Сервер  running on ', PORT);}); 

Перейдите на http://localhost: 3000 Вы можете увидеть, что сервер Node.js работает на Порт : 3000.

Следующим шагом является установка механизма просмотра и промежуточного программного обеспечения для нашего приложения. Добавьте следующий код в файл server.js .

//server.jsapp.use (express.static ('public')); app.engine  ('hbs', hbs.express4 ({partialsDir: __dirname + '/views/partials'})); app.set ('механизм просмотра', 'hbs'); app.set ('views', __dirname + '/ просмотров '); app.use (bodyParser.json ()); app.use (bodyParser.urlencoded ({extended: true})); app.use (cookeParser ()); app.use (session ({secret:'  krunal ', resave: false, saveUninitialized: true,})); app.use (expressValidator ()); 

Мы еще не создали папку views , но мы сделаем это через мгновение. Мы использовали Express Handlebars в качестве механизма создания шаблонов. Вы также можете использовать EJS . Здесь мы использовали промежуточное ПО body-parser , а также использовали cookie-parser. Затем используйте экспресс-сеанс, который требует объект в качестве аргумента для его инициализации. Затем используйте пакет flash, чтобы отобразить сообщение об ошибке или успешном завершении.

Шаг 3. Создание необходимых каталогов.

В корне папку, создайте один каталог с именем views и в этой форме один файл с именем add .hbs. Кроме того, создайте один каталог внутри папки views с именем partials. Мы можем использовать это для определения файлов header.hbs и footer.hbs .

Кроме того, make одну папку с именем public и в ней создайте одну папку с именем css и поместите в нее файл bootstrap.min.css .

     Добавить информацию     
Добавить пользователя
re>

Определите маршрут для нашего приложения.

Создайте одну папку внутри корня с именем routes и в нем создайте один файл с именем user.route. js . Здесь нам нужно определить маршруты получения и отправки для нашего приложения.

//user.route.jsconst express = require ('express'); const router = express.Router (); router.get  ('/', функция (req, res) {res.render ('add', {errors: req.session.errors}); req.session.errors = null;}); module.exports = router; 

Теперь нам нужно импортировать этот маршрут в файл server.js .

//server.jsconst user = require ('  ./routes/user.route');app.use('/user',user);

Перейдите на http://localhost: 3000/user. Вы увидите такую ​​форму.

Шаг 4. Проверка на стороне сервера.

В routes >> user.route.js файл, вставьте следующий код. Мы только что определили маршрут post .

//user.route.jsrouter.post ('/add', function (req, res) {let name  = req.body.name; let email = req.body.email; req.checkBody ('name', 'Name is required'). notEmpty (); req.checkBody ('email', 'Email is required').  notEmpty (); req.checkBody ('электронная почта', 'Пожалуйста, введите действительный адрес электронной почты'). isEmail (); const errors = req.validationErrors (); if (errors) {req.session.errors = errors; res.redirect  ('/user');} else {req.session.success = true; res.redirect ('/');}}); 

Итак, если есть ошибки, то это сохранит в сеансе и перенаправит нас в представление добавления с ошибками.

Теперь просто напишите код в файле add.hbs для отображения ошибок.

  {{# if errors}} {{# each errors}} 

{{this.msg} }

{{/each}} {{/if}}

Теперь перейдите по адресу http://localhost: 3000/user. Если вы отправите форму без каких-либо значений, она сохранит значения в сеансе и выдаст нам ошибку.

Вот как мы можем использовать сеансы. Я уже выложил код на Github. Наконец, наш пример экспресс-сессии завершен.

Fork Me On Github

Оцените статью
nanomode.ru
Добавить комментарий