freeCodeCamp/curriculum/challenges/russian/06-information-security-and.../advanced-node-and-express/implement-the-serialization...

4.3 KiB
Raw Blame History

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

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: Соединение с базой данных присутствует
    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: 'Теперь десериализация корректно использует БД и <code>done(null, null)</code> стирается'
    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); })'

Challenge Seed

Solution

// solution required