2012-07-31 82 views
4

最近我使用JSON/Rest服務,並在服務器上手動輸入對數據庫執行基本CRUD操作的方法。JavaScript客戶端ORM的框架?

我想什麼做的,是在JavaScript(基於Ajax的應用程序)做一些形式

var allStudents = students.getAllStudents(); // returns all items of the students table 

var student = new student(); 
student.name = "Joe"; 
student.address = "123 Sesame st"; 
students.add(student); // commits it to the students table 

var student = students.getStudentById(57); 

的現在,任何ORM所有這些方法都將被自動/爲我寫的。

另外請注意,我不是說Javascript應該直接與數據庫對話。它會 仍然做Restful調用(幕後到服務器)。但我只想 這些crud操作對我來說是自動和透明的,這樣我就不需要 手動在服務器上寫出這些操作。

你們知道任何有助於實現這一目標的框架嗎?

我的主後端是Java/Spring3MVC。但我也想聽到可能使用Node.js的想法。

+0

看起來像一個巨大的安全漏洞給我。 – Falmarri 2012-07-31 22:36:27

+0

和運行RESTful方法(如'yourserver/addStudent/name/joe/address/sesamest')有什麼區別......服務器仍在執行提交。相同的安全性 – foreyez 2012-07-31 22:38:24

+0

是的,在某種程度上。如果你使用這種架構,你會*需要*一些可插拔的安全模型,迫使你批准/拒絕所有提交。沒有這確實是一個安全漏洞。 – 2012-08-01 07:05:40

回答

0

如果您可以使用類似Backbone.js或Can.js(推薦)的界面來執行界面操作,並通過RESTfull服務與您的數據庫無縫溝通,那麼您會留下深刻的印象,如果您之前沒有看到它。

http://backbonejs.org/ http://canjs.us/

都使用MVC結構,是非常容易安裝。 看看演示和示例。

+0

沒有冒犯,但你甚至讀過我的問題嗎?骨幹/ canjs不會遠程做我所問的。 MVC不是我問的。 – foreyez 2012-08-01 20:06:05

2

與僅僅編寫RESTful Ajax請求相比,我不確定這是否節省時間,但Dojo的JsonRest store是我見過的一種解決方案,它與您所描述的類似。就我個人而言,我發現它明確地寫出ajax請求更具可讀性,但如果您不介意遵守Dojo的哲學,關於如何構建請求,您可能會喜歡這一點。總之,這裏是從文檔頁面的一些代碼:

require(["dojo/store/JsonRest"], function(JsonRestStore){ 

    var store = new JsonRestStore({target: "/Table/" }); 

    store.get(3).then(function(object){ 
    // use the object with the identity of 3 
    }); 

    store.query("foo=bar").then(function(results){ 
    // use the query results returned from the server 
    }); 

    store.put({ foo: "bar" }, { id: 3 }); // store the object with the given identity 

    store.remove(3); // delete the object 

});