JavaScript数据库API设计

JavaScript DB API design

本文关键字:设计 API 数据库 JavaScript      更新时间:2023-09-26

我正在构建一个可以被JavaScript访问的数据库,我希望能够在JavaScript中表示查询,然后将其转换为其他内容。

目前,我有一个API,它是这样工作的:

var db; /* don't worry about the definition */
var is; /* db functions, don't worry about definition */
/* variables from HTTP session,  */
var $session; /* $session == {"user": 12345} */
var results = [];
db.put("posts").
        where("date", is.between("January 10 2010", "December 10 2010")).
        where("author", is("John Doe")).
        where("user", is($session.user).
        into(results);  

上述代码将从数据库中获取日期在2010年1月10日至2010年12月10日之间的所有帖子,并将它们作为数组元素放入结果中,然后可以像普通对象一样访问,例如:

var i;
for(i = 0; i < results.length; i++) {
    alert("Result #" + i + ": " + results[i].title);
}

数据库不是SQL,而是包含"类型化"的JSON对象(如果这很重要,我可以进一步阐述)。

这个API好吗?还是我应该做点别的?我想避免字符串作为MySQL的唯一方法。


我的另一个想法是以某种方式模仿DOM(类似JQuery),但我不确定最好的方法是什么

看看SQLike,它是一个用JavaScript编写的数据库,使用SQL"like"语法。可能正是你想要的。

博客文章:http://www.thomasfrank.se/sqlike.html<-你可以在这里获得未缩小的来源

演示:http://www.thomasfrank.se/SQLike/

它看起来不错——它与其他查询构建语法结构非常相似(请参阅http://framework.zend.com/manual/en/zend.db.select.html以获取PHP库如何进行类似操作的示例)。