2011-09-03 43 views
12

Tôi muốn sử dụng mongodb trực tiếp từ phía máy khách, sử dụng javascript bên trong các mô hình của tôi. Tôi cho rằng điều này là có thể vì trên trang web mongo có một giao diện điều khiển thời gian thực javascript cho bản demo.Mongodb phía máy khách javascript api

Có tồn tại một cách để sử dụng cùng api trong một ứng dụng javascript bình thường mà không cần phải viết mã máy khách-máy chủ keo không?

Cảm ơn

Trả lời

7

Hình như trang web sử dụng giao diện AJAX REST như thế nào, nhưng tôi chắc chắn rằng nó không truy cập vào bất kỳ trường hợp MongoDB trực tiếp hoặc gián tiếp thông qua một số thậm chí cầu.

Suy nghĩ kỹ trước khi áp dụng mẫu này: bạn sẽ thực thi bảo mật như thế nào? Bạn có biết về các giới hạn AJAX không? Nếu bạn thực sự biết những gì bạn đang làm, các documentation điểm chính thức để ít tài nguyên hữu ích:

  • Sleepy Mongoose (Python) là một giao diện REST đầy đủ tính năng cho MongoDB mà có sẵn như là một dự án riêng biệt.

  • MongoDB Rest (Node.js) là alpha Giao diện REST tới MongoDB, sử dụng trình điều khiển Native Node MongoDB.

  • Simple REST Interface Quy trình mongod bao gồm giao diện REST chỉ đọc đơn giản để thuận tiện. Đối với các khả năng REST đầy đủ, chúng tôi khuyên bạn nên sử dụng một công cụ bên ngoài như Sleepy.Mongoose.

Có một cây cầu REST và quản lý same origin policy bạn có thể dễ dàng truy cập MongoDB trực tiếp sử dụng các cuộc gọi AJAX và JavaScript.

+1

bất kỳ đề xuất nào về bảo mật? – Bakaburg

+1

Tôi nghĩ rằng tôi sẽ đặt một số trung gian giữa khách hàng và cầu REST MongoDB ở phía máy chủ kiểm tra các thông tin và ủy quyền cho khách hàng. Bằng cách này mã khách hàng (trình duyệt) không biết gì về thông tin xác thực MongoDB, nhưng vì nó gửi cookie phiên (giả sử người dùng đã đăng nhập), bạn có thể nhận dạng máy khách và cấp cho anh ta quyền truy cập hay không. –

+0

Cảm ơn bạn đã trả lời! Tôi đồng ý với bạn. nhưng sau đó bạn nghĩ là không thể xây dựng một ứng dụng mà không có gánh nặng đi qua mỗi yêu cầu cơ sở dữ liệu máng một lớp trung lưu máy chủ? nhưng couchdb và couchapp có thể sử dụng REST comunication (trough một giao diện thực sự jquery sạch). Làm thế nào để họ đối phó với an ninh?Tôi không muốn học couchdb, bởi vì tôi thấy nó quá phức tạp cho những gì tôi cần (và trong thời gian tôi có) – Bakaburg

1

Tôi cần phải làm một cái gì đó tương tự như bản thân mình, một giao diện điều khiển bên trong giao diện quản trị, và vì tôi sử dụng PHP ở phía sau, tôi vừa tạo kịch bản để nhận lệnh js và sử dụng phương thức thực thi MongoDB ::, kết nối php đã được mở vì vậy tôi đã không phải vượt qua bất kỳ dữ liệu xác thực, chỉ cần các lệnh.
Bạn phải cực kỳ cẩn thận với một cái gì đó như thế này, và đảm bảo chỉ người dùng đáng tin cậy mới có thể truy cập trang (và tập lệnh), không hiển thị công khai vì mọi người có thể thực thi js trên máy khách để truy cập vào db.

Edit: Dưới đây là các liên kết đến các tài liệu http://ar2.php.net/manual/en/mongodb.execute.php

1

Hãy xem meteorjs, hoặc tương đương. Mô hình được viết một lần, hoàn thành ACL.

Thậm chí còn tốt hơn khi bạn thêm vào Redis :)

Các vấn đề liên quan