Files
freeCodeCamp/curriculum/challenges/russian/06-information-security-and-quality-assurance/advanced-node-and-express/implement-the-serialization-of-a-passport-user.russian.md

4.1 KiB
Raw Blame History

id, title, challengeType, forumTopicId, localeTitle
id title challengeType forumTopicId localeTitle
5895f70cf9fc0f352b528e67 Implement the Serialization of a Passport User 2 301556 Внедрить сериализацию пользователя паспорта

Description

Напомним, что этот проект строится на следующем стартовом проекте Glitch или клонируется из GitHub . Прямо сейчас мы не загружаем объект на самом деле, так как мы не создали нашу базу данных. Это можно сделать разными способами, но для нашего проекта мы будем подключаться к базе данных один раз, когда мы запустим сервер и сохраним постоянное соединение для полного жизненного цикла приложения. Чтобы сделать это, добавьте MongoDB в качестве зависимости и потребуйте его на своем сервере. ( const mongo = require('mongodb').MongoClient; ) Теперь мы хотим подключиться к нашей базе данных, а затем начать прослушивание запросов. Цель этого - не разрешать запросы до подключения нашей базы данных или ошибки базы данных. Для достижения этой цели вы захотите охватить сериализацию и прослушиватель приложений следующим образом:
 mongo.connect (process.env.DATABASE, (err, db) => {
    if (err) {
        console.log («Ошибка базы данных:« + ошибка »);
    } else {
        console.log («Успешное подключение к базе данных»);
  //serialization and app.listen 

}});

Теперь вы можете раскомментировать блок в deserializeUser и удалить done(null, null) . Обязательно установите DATABASE в свой .ENV-файл в строку подключения вашей базы данных (например: DATABASE=mongodb://admin:pass@mlab.com:12345/my-project ). Вы можете создать бесплатную базу данных на mLab . Поздравляем - вы закончили настройку сериализации! Представьте свою страницу, когда вы думаете, что у вас все в порядке. Если вы работаете в ошибки, вы можете проверить проект завершен до этого момента здесь .

Instructions

Tests

tests:
  - text: Database connection is present
    testString: getUserInput => $.get(getUserInput('url')+ '/_api/server.js') .then(data => { assert.match(data, /mongo.connect/gi, 'You should have created a connection to your database'); assert.match(data, /mongo.connect[^]*app.listen[^]*}[^]*}/gi, 'You should have your app.listen nested at within your database connection at the bottom'); }, xhr => { throw new Error(xhr.statusText); })
  - text: Deserialization is now correctly using the DB and <code>done(null, null)</code> is erased
    testString: getUserInput => $.get(getUserInput('url')+ '/_api/server.js') .then(data => { assert.notMatch(data, /null,( |)null/gi, 'The callback in deserializeUser of (null, null) should be completely removed for the db block uncommented out'); }, xhr => { throw new Error(xhr.statusText); })