Node js phương tiện truyền thông xã hội còn lại api với mongodb

Express chính. js trong hướng dẫn này là hiển thị các tuyến API REST để thực hiện các hoạt động Đọc, Tạo, Cập nhật và Xóa cho ứng dụng danh sách của chúng tôi. Điều này có thể được mở rộng cho logic nghiệp vụ ứng dụng phức tạp hơn khi trường hợp sử dụng của bạn yêu cầu

Tệp sẽ lưu trữ các tuyến là --- “máy chủ/tuyến/bản ghi. js”. Nó sử dụng tính năng

const express = require["express"];

// recordRoutes is an instance of the express router.
// We use it to define our routes.
// The router will be added as a middleware and will take control of requests starting with path /listings.
const recordRoutes = express.Router[];

Đọc tuyến đường

Lộ trình Đọc sẽ được sử dụng khi đường dẫn /listings trên phương thức GET được gọi. Nó sẽ sử dụng a để truy vấn bộ sưu tập listingAndReviews của chúng tôi cho 50 danh sách có sẵn đầu tiên

// This section will help you get a list of all the documents.
recordRoutes.route["/listings"].get[async function [req, res] {
  const dbConnect = dbo.getDb[];

  dbConnect
    .collection["listingsAndReviews"]
    .find[{}].limit[50]
    .toArray[function [err, result] {
      if [err] {
        res.status[400].send["Error fetching listings!"];
     } else {
        res.json[result];
      }
    }];
}];

Mã gửi lại tập kết quả dưới dạng phản hồi API

Tạo tuyến đường

Tuyến đường Tạo sẽ ghi lại thao tác vuốt “khớp” trong bộ sưu tập “khớp”. Phần thân của phương thức POST này sẽ hiển thị một người dùng session_id và hướng được vuốt và listing_id để tạo tài liệu “khớp”

// This section will help you create a new document.
recordRoutes.route["/listings/recordSwipe"].post[function [req, res] {
  const dbConnect = dbo.getDb[];
  const matchDocument = {
    listing_id: req.body.id,
    last_modified: new Date[],
    session_id: req.body.session_id,
    direction: req.body.direction
  };

  dbConnect
    .collection["matches"]
    .insertOne[matchDocument, function [err, result] {
      if [err] {
        res.status[400].send["Error inserting matches!"];
      } else {
        console.log[`Added a new match with id ${result.insertedId}`];
        res.status[204].send[];
      }
    }];
}];

Việc lưu được thực hiện thông qua phương thức với “matchDocument” dựng sẵn. ”

Bạn cũng có thể sử dụng InsertMany để chèn nhiều tài liệu cùng lúc

Lộ trình Cập nhật cập nhật trường “thích” trên một đối tượng danh sách. Điều này được thực hiện thông qua phương thức POST

// This section will help you update a document by id.
recordRoutes.route["/listings/updateLike"].post[function [req, res] {
  const dbConnect = dbo.getDb[];
  const listingQuery = { _id: req.body.id };
  const updates = {
    $inc: {
      likes: 1
    }
  };

  dbConnect
    .collection["listingsAndReviews"]
    .updateOne[listingQuery, updates, function [err, _result] {
      if [err] {
        res.status[400].send[`Error updating likes on listing with id ${listingQuery.id}!`];
      } else {
        console.log["1 document updated"];
      }
    }];
}];

Phương thức này sẽ sử dụng phương thức có $inc trên trường “thích” để tăng lượt thích

Xóa lộ trình

Bất cứ khi nào một danh sách bị loại bỏ, chúng tôi có thể xóa nó khỏi cơ sở dữ liệu để nó không xuất hiện nữa. Điều này được thực hiện thông qua tuyến đường Xóa

// This section will help you delete a record.
recordRoutes.route["/listings/delete/:id"].delete[[req, res] => {
  const dbConnect = dbo.getDb[];
  const listingQuery = { listing_id: req.body.id };

  dbConnect
    .collection["listingsAndReviews"]
    .deleteOne[listingQuery, function [err, _result] {
      if [err] {
        res.status[400].send[`Error deleting listing with id ${listingQuery.listing_id}!`];
      } else {
        console.log["1 document deleted"];
      }
    }];
}];

Lộ trình ở đây bao gồm tham số

// This section will help you get a list of all the documents.
recordRoutes.route["/listings"].get[async function [req, res] {
  const dbConnect = dbo.getDb[];

  dbConnect
    .collection["listingsAndReviews"]
    .find[{}].limit[50]
    .toArray[function [err, result] {
      if [err] {
        res.status[400].send["Error fetching listings!"];
     } else {
        res.json[result];
      }
    }];
}];
0. Đây là id của danh sách sẽ bị xóa thông qua bộ sưu tập. xóaOne[]

API phương tiện truyền thông xã hội mã nguồn mở được xây dựng bằng Node. js, Express và MongoDB. API này được xây dựng để các nhà phát triển sử dụng trong các dự án của họ. Nó không có nghĩa là được sử dụng như một nền tảng truyền thông xã hội độc lập. API này vẫn đang được phát triển và chưa sẵn sàng để sử dụng sản xuất

  • Nếu bạn muốn đóng góp cho dự án này, vui lòng xem hướng dẫn đóng góp

  • Chúng tôi sẵn sàng nhận các đề xuất và đóng góp. Vui lòng mở một vấn đề hoặc yêu cầu kéo. Nếu bạn thích dự án, hãy cân nhắc cho nó một ngôi sao

  • Do hạn chế của máy chủ, API hiện được lưu trữ trên một cấp độ miễn phí của Cyclic. Vì vậy, có thể mất vài giây để phản hồi yêu cầu của bạn. Xin hãy kiên nhẫn

  • Vì lý do tương tự, API có thể ngừng hoạt động vài phút mỗi ngày. Chúng tôi đang làm việc trên một giải pháp cho vấn đề này

  • Do hạn chế về cơ sở dữ liệu, API hiện được lưu trữ trên một tầng miễn phí của MongoDB Atlas. Vì vậy, có thể mất vài giây để phản hồi yêu cầu của bạn. Xin hãy kiên nhẫn

  • API này hiện đang được phát triển. Vì vậy, sau khi phát hành phiên bản sản xuất, chúng tôi sẽ bổ sung thêm nhiều tính năng cho nó. Bạn có thể kiểm tra tiến độ của dự án tại đây. Nếu bạn có bất kỳ đề xuất nào, vui lòng mở một vấn đề

  • Đối với phiên bản sản xuất, chúng tôi dự định lưu trữ API trên một tầng trả phí của Cyclic và MongoDB Atlas. Vì vậy, nó sẽ đáng tin cậy hơn và nhanh hơn

  • Sau khi phát hành phiên bản sản xuất, chúng tôi có thể xóa một số dữ liệu trong cơ sở dữ liệu để có hiệu suất tốt hơn và nhanh hơn. Dữ liệu sẽ chỉ bị xóa nếu nó không cần thiết cho dự án hoặc nó có thể gây ra bất kỳ vấn đề hoặc xung đột nào

Nếu bạn muốn đóng góp, vui lòng đọc hướng dẫn đóng góp

Ghi chú. Do các cập nhật và thay đổi quan trọng trong cơ sở dữ liệu và cấu trúc API, API không còn tương thích với phiên bản trước. Vui lòng tham khảo tài liệu để biết thêm chi tiết. Có thể phiên bản API cũ của bạn không hoạt động với phiên bản mới. Trong trường hợp đó, bạn có thể tham khảo tài liệu cho phiên bản mới

Tài liệu

// This section will help you get a list of all the documents.
recordRoutes.route["/listings"].get[async function [req, res] {
  const dbConnect = dbo.getDb[];

  dbConnect
    .collection["listingsAndReviews"]
    .find[{}].limit[50]
    .toArray[function [err, result] {
      if [err] {
        res.status[400].send["Error fetching listings!"];
     } else {
        res.json[result];
      }
    }];
}];
0

Đóng góp

Mời bạn đọc ĐÓNG GÓP. md để biết chi tiết về quy tắc ứng xử của chúng tôi và quy trình gửi yêu cầu kéo cho chúng tôi

Chủ Đề