@nickname-none
Frontend-developer

MVC Sails Js, как всё устроено? Что почитать?

Здравствуйте.

Я начинающий JS разработчик. Ищу много информации по MVC. Но в основном везде информация о MVC на клиенте. MVC на клиенте я понимаю гораздо проще, нежели на сервере. А мне нужно как раз-таки последнее.

Подскажите пожалуйста где можно почитать о том как всё устроено в MVC шаблоне, желательно на примере Sails Js. Как все работает вообще, какая роль контроллера, модели? Router, policies и т.д.. Как все работает, откуда что вызывается.

Буду благодарен.
Так же был бы рад почитать абстрактное объяснение, даже без написания кода.
  • Вопрос задан
  • 210 просмотров
Пригласить эксперта
Ответы на вопрос 1
ImLoaD
@ImLoaD
Программист
Модель вид представление
Модель в sails js это объект отвечающий за доступ к базе. Например создаешь файл models/User.js, прописываешь в нем id, fullname, login, password
Создаешь представление views/login.html, в нем верстаешь форму ввода логина и пароля, кнопку отправить и прописываешь url (post /login например).
Создаешь контроллер controllers/UserConroller.js
в файле config/routes.js пишешь url 'POST /login': 'UserController.loginAction'
В контроллере пишешь (в module.exports объекте)
loginAction: function(req, res) {
  // данные POST методом передаются в теле req.body
  var login = req.body.login;
  User.find({login: login}).exec((err, user) => { // для разнообразия стрелочная функция 
    if (err) return res.negotiate(err);
    // ну и дальше сравниваем пароли, как правило зашифровываем присланный пароль и сравниваем с зашифрованным паролем в базе (user.password доступен в данной области видимости анонимной функции - коллбека метода find объекта User - являющегося абстрактной моделью
  });
}

Вот у вас MVC, и взаимодействие между ними
Модель хранит данные и дает к ним доступ - используется в контроллере
Контроллер управляет, открывает представление (res.view('login') - контроллер дает браузеру страницу логина - предст.
Представление отображает данные и открывает ссылки, согласно файлу routes вызываются определенные экшены контроллера.
Вот и вся связь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час