2015-01-24 24 views
6

Tôi đang sử dụng Parse Cloud Code cho ứng dụng di động xã hội. Tôi muốn làm cho mã đám mây có thể mở rộng nhưng Parse có một số quy tắc mà tôi phải tuân thủ. Cấu trúc giống như:Cấu trúc mã đám mây phân tích cú pháp

cloud/ 
    main.js 
    other.js 
    otherfile/ 
     someother.js 
     ... 
    ... 

chỉ main.js là cần thiết và khách hàng di động chỉ có thể gọi hàm bên trong main.js.

Trong khách hàng của tôi, tôi đang sử dụng MVC làm kiến ​​trúc nhưng tôi không chắc nên sử dụng loại kiến ​​trúc nào trong mã đám mây của mình. Kiến trúc mã đám mây của tôi nên như thế nào.

Có kiến ​​trúc phụ trợ chung mà tôi có thể sử dụng không?

Trả lời

7

Tôi tự tạo cấu trúc. Nhưng nó chắc chắn có thể được cải thiện.

Tôi đã cố gắng làm cho tệp main.js của mình trở nên đơn giản. Tôi chỉ thêm các tên hàm sẽ được gọi bên ngoài mã đám mây.

// Include all of the modules 
var module1 = require('cloud/folder1/file1.js'); 
var module2 = require('cloud/folder1/file2.js'); 
var module3 = require('cloud/folder2/file1.js'); 
var backgroundjob = require('cloud/backgroundjob/background.js'); 

Parse.Cloud.job("startBackgroundJob", backgroundjob.startBackgroundJob); 
Parse.Cloud.define("do_this_stuff", module1.thisfunction); 
Parse.Cloud.define("do_this_stuff2", module1.notthisfunction); 
Parse.Cloud.define("do_that_stuff", module2.thatfunction); 
Parse.Cloud.define("do_dat_stuff", module3.datfunction); 

Trong tệp1.js tôi đã viết chức năng như sau.

// Include libraries 
var utils = require("cloud/utils/utils.js"); 
var _ = require('underscore'); 

// Export Modules 
module.exports = { 
    thisfunction: function (request, response) { 
    addComment(request, response); 
    }, 
    thatfunction: function (request, response) { 
    getComment(request, response); 
    }, 
}; 

function addComment(request, response) { 
    // write your code here 
    var stuff = utils.callThisFunction(param); // This is the usage of another function in another file 
    response.success("Comment added"); // or error but do not forget this 
} 

function getComment(request, response) { 
    // write your code here 
    response.success("Got Comment"); // or error but do not forget this 
} 

Tôi đã xuất mô-đun như được hiển thị vì nó làm cho mã dễ đọc hơn. Tôi chỉ có thể nhìn vào đầu mã và xem những chức năng nào tôi có thể sử dụng từ tệp này. Bạn có thể sử dụng docs export style.

exports.addComment = function(request, response) { 
    // your code 
    response.success(); 
} 
+1

Điều này rất hữu ích! Tôi đã đi một bước xa hơn và làm như sau: '' ' var CloudFunctions = require ('./ source/cloud-functions.js'); _.each (_. Phím (CloudFunctions), chức năng (functionName) { Parse.Cloud.define (functionName, CloudFunctions [functionName]); }); '' ' Bằng cách này bạn không cần phải xác định từng loại. Hoạt động cho Công việc, lưu/xóa vv quá –

0

Trong mã đám mây, main.js tồn tại như cũ. Tất cả các chức năng mã đám mây đều nằm bên trong tệp đơn đó. Không có điều chế hoặc kiến ​​trúc bổ sung.

Parse.Cloud.run (tên, dữ liệu, tùy chọn) là cách duy nhất để gọi chức năng Parse Cloud.

R

0

Bạn có thể chia mã của bạn thành các module bằng cách tạo ra một module mới bên cạnh main.js, nói services.js

Và yêu cầu nó trong main.js

require("cloud/services.js"); 

Cuối cùng, tất cả các chức năng điện toán đám mây được xác định trong tập tin đó sẽ có sẵn cho bạn giống như trong main.js. Điều này là do Parse chạy mọi thứ trong tệp đó khi bạn require nó, về cơ bản có nghĩa là bạn chỉ tính tất cả mã đó vào một tệp riêng biệt.

+0

Tôi đã lên kế hoạch đưa ra nhận xét tương tự. Tôi có các chức năng đám mây được xác định trong một số mô-đun khác nhau và cả ứng dụng Android và iOS đều tìm thấy chúng. Tôi nhận ra tại Main.js dòng 5000 hoặc để các mô-đun là con đường để đi! – MayNotBe

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