MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cài đặt plugin bạn bè mongoose với MeanJS

Cài đặt dễ dàng thông qua npm, đơn giản:

npm install mongoose-friends --save

Tôi không có kinh nghiệm với MEAN.JS, nhưng có vẻ như phần lớn là một bộ sưu tập các máy phát điện để tạo ra một ứng dụng góc / thể hiện theo mô hình CRUD. Như vậy, nó dường như tuân theo triết lý của khuôn khổ để tạo ra tình bạn như một nguồn tài nguyên CRUD.

Sử dụng yo như họ đề xuất:

yo meanjs:crud-module friendship

Điều này sẽ tạo MVC cho một mô hình tình bạn, nhưng sẽ tạo ra một số giả định không chính xác về chính mô hình đó, cụ thể là nó là một mô hình mongoose hạng nhất. Với plugin này thì không. Thay vì tình bạn là một phần của tập hợp được nhúng trong hồ sơ người dùng, plugin cung cấp các phương thức CRUD cho họ.

Trước hết, hãy thêm plugin vào mô hình người dùng của bạn.

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

Mô hình được tạo tại app/models/friendship và các tham chiếu đến nó trong các tệp đã tạo, sẽ cần được xóa. Thay vì Friendship mô hình, các mối quan hệ bạn bè sẽ được CRUD'd thông qua các phương thức plugin được thêm vào User của bạn mô hình.

Bộ điều khiển được tạo tại app/controllers/friendships.server.controller.js có thể sẽ yêu cầu thay đổi nhiều nhất.

create , ví dụ sẽ thay đổi từ sau:

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

Đối với một cái gì đó giống như:

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

Các lộ trình cũng có thể cần thay đổi, tùy thuộc vào cách ứng dụng của bạn sử dụng tình bạn. Tình bạn của plugin không phải là tài nguyên hạng nhất, mà là một tập hợp người dùng được nhúng. Vì vậy, không có /friendships công khai tuyến đường chẳng hạn. Lộ trình đó sẽ chỉ cần trả lại bạn bè của người dùng đã đăng nhập hoặc bạn muốn lập bản đồ một lộ trình tình bạn cụ thể cho người dùng, ví dụ:/users/ID/friendships , trong trường hợp tình bạn của một người dùng có thể được xem bởi những người khác chứ không phải chính người dùng đó.

Dù sao, điều này chắc chắn là không đầy đủ và thậm chí có thể sai lầm, nhưng tôi hy vọng nó đủ để giúp bạn bắt đầu triển khai.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sự khác biệt giữa toGMTstring () và toUTCstring () là gì?

  2. Cách kiểm tra xem một chỉ mục có bị ẩn trong MongoDB hay không

  3. Làm cách nào để sử dụng async-await với MongoClient

  4. Truy vấn có nguồn gốc không hoạt động với DBRef

  5. Ngăn dữ liệu mùa xuân để Mongo chuyển đổi id thành ObjectId