Установка плагина друзей мангуста с помощью MeanJS

Спасибо за вашу поддержку!

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

Я бы хотел, чтобы пользователи могли «дружить» друг с другом, как на Facebook. Есть такой плагин под названием mongoose friends. Выглядит очень многообещающе. Проблема в том, что в репозиторий git нет примера html-страницы, которая помогла бы мне выполнить установку. Видите, есть папка lib с plugin.js и status.js. Это идет на стороне сервера или на стороне клиента? Я предполагаю, что это идет на стороне сервера...

https://github.com/numbers1311407/mongoose-friends

Как бы я отделил весь этот код в одном файле js в MVC для MeanJS?

Сначала я не хотел публиковать этот вопрос, потому что думал, что вопрос может быть слишком большим или слишком широким, но потом я понял, что это базовый вопрос «Как мне установить плагин?» вопрос. Новые пользователи MeanJS могут извлечь пользу из этого типа вопросов.


person user3373281    schedule 06.06.2014    source источник


Ответы (1)


Установка проста через npm, просто:

npm install mongoose-friends --save

У меня нет опыта работы с MEAN.JS, но, похоже, по большей части это набор генераторов для создания приложения angular/express с шаблоном CRUD. Таким образом, кажется, что он следует философии фреймворка, чтобы создать дружбу как ресурс CRUD.

Используя yo, как они предлагают:

yo meanjs:crud-module friendship

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

Во-первых, добавьте плагин в вашу пользовательскую модель.

// in app/models/user.server.model.js
var friends = require("mongoose-friends");
// ...
UserSchema.plugin(friends());

Сгенерированную модель в app/models/friendship и ссылки на нее в сгенерированных файлах необходимо будет удалить. Вместо модели Friendship дружба будет CRUD с помощью методов плагина, добавленных в вашу модель User.

Контроллер, сгенерированный в app/controllers/friendships.server.controller.js, скорее всего, потребует наибольших изменений.

create, например, изменится от этого:

var friendship = new Friendship(req.body);
friendship.user = req.user;
friendship.save(callback);

К чему-то более похожему:

req.user.requestFriend(req.body.user, callback);

Маршруты также могут измениться в зависимости от того, как ваше приложение использует дружбу. Дружба плагина — это не первоклассный ресурс, а встроенная коллекция пользователя. Например, нет общедоступного маршрута /friendships. Либо этот маршрут должен возвращать только зарегистрированных друзей пользователей, либо вы хотите сопоставить маршрут дружбы, специфичный для пользователя, например. /users/ID/friendships, в случае, если дружеские отношения пользователя были доступны для просмотра кем-то другим, кроме самого пользователя.

В любом случае, это, без сомнения, ужасно неполно и, возможно, даже ошибочно, но я надеюсь, что этого достаточно, чтобы вы начали реализацию.

person numbers1311407    schedule 19.06.2014