freeCodeCamp/curriculum/challenges/russian/06-information-security-and.../advanced-node-and-express/clean-up-your-project-with-...

4.2 KiB
Raw Blame History

id title challengeType videoUrl localeTitle
589690e6f9fc0f352b528e6e Clean Up Your Project with Modules 2 Очистка проекта с помощью модулей

Description

Напомним, что этот проект строится на следующем стартовом проекте Glitch или клонируется из GitHub . Сейчас все, что у вас есть, находится в файле server.js. Это может привести к сложному управлению кодом, который не очень расширяем. Создайте 2 новых файла: Routes.js и Auth.js. Оба должны начинаться со следующего кода:
 module.exports = function (app, db) {

}

Теперь в верхней части файла вашего сервера требуются такие файлы: const routes = require('./routes.js'); Сразу после того, как вы установили успешное соединение с базой данных, создайте экземпляр каждого из них, например: routes(app, db) Наконец, возьмите все маршруты на своем сервере и вставьте их в свои новые файлы и удалите их из файла вашего сервера. Также возьмите makeAuthenticated, так как мы создали эту функцию промежуточного программного обеспечения для маршрутизации. Теперь вам нужно будет правильно добавить зависимости, которые используются, например, const passport = require('passport'); , в верхней части над линией экспорта в файле routes.js. Продолжайте добавлять их до тех пор, пока не возникнет больше ошибок, и ваш серверный файл больше не имеет никакой маршрутизации! Теперь сделайте то же самое в файле auth.js со всеми вещами, связанными с аутентификацией, такими как сериализация и настройка локальной стратегии, и сотрите их из файла вашего сервера. Обязательно добавьте зависимости и вызовите auth(app,db) на сервере в том же месте. Обязательно иметь auth(app, db) перед routes(app, db) так как наш маршрут регистрации зависит от начального паспорта! Поздравляем вас, вы в конце этого раздела Advanced Node и Express и получите красивый код для этого! Представьте свою страницу, когда вы думаете, что у вас все в порядке. Если вы столкнулись с ошибками, вы можете посмотреть пример завершенного проекта здесь .

Instructions

Tests

tests:
  - text: Представленные модули
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /require.*("|").\/routes.js("|")/gi, "You should have required your new files"); assert.match(data, /mongo.connect[^]*routes/gi, "Your new modules should be called after your connection to the database"); }, xhr => { throw new Error(xhr.statusText); })'

Challenge Seed

Solution

// solution required