PandaJS: Rhino + MongoDB + Server-side JQuery Template
PandaJS 是基于 Rhino、MongoDB、Server-side jQuery Template 的 JS 编程工具包,目标是使用更一致的方式编写客户端和服务器端的 js 代码。它采用嵌入式的 Jetty 作为 Web Server,依赖于 Java 7。
PandaJS 在服务器端的页面渲染也采用 JQuery Template 的语法,而数据库操作接口的语法与 Mongo Shell 上直接执行的原生语法非常接近。这使得我们可以在服务器端和客户端共用页面渲染代码,并且可以直接使用从前端传递过来的 JavaScript 对象与数据库进行交互。
Google Code 上的项目地址:
http://code.google.com/p/pandajs/
运行、调试、测试、部署:
http://xxing22657-yahoo-com-cn.iteye.com/blog/1151963
Code Sample
【使用 MongoDB 进行数据管理】
dbo.users = function(){
var users = panda.db.get("users");
return {
list: function() {
if (!users.count()) { init(); }
return users.list().$sort({ name: 1 });
},
add: function(user) {
users.insert(user);
return this.list();
},
update: function(user) {
var q = { name: user.name };
users.update(q, user, true, false);
return this.list();
},
remove: function(name) {
users.remove({ name: name });
return this.list();
}
};
// 初始化数据库的实现,略
function init() { ... }
}();
见文章
http://xxing22657-yahoo-com-cn.iteye.com/blog/1158359
【使用 jQuery Template 语法进行服务器端页面渲染】
var views = {};
views.index = function($, users) {
var content = $("#content-tmpl").tmpl(),
rows = $("#user-tmpl").tmpl(users);
$("#content").html(content);
$("#content tr:first").after(rows);
$("#error").hide();
};
见文章
http://xxing22657-yahoo-com-cn.iteye.com/blog/1158359
【服务器端与客户端共用代码】
可以共用的代码包括渲染代码、数据校验代码等,这里以共用渲染代码为例
(共用前面提到的 views.index(...))。
服务器端代码:
page.index = function(params, req, res) {
return panda.render("index", function($){
views.index($, dbo.users.list());
});
};
客户端代码:
$(function(){
bind();
// 其他代码,略
// 每次修改数据时重新渲染页面、绑定事件
function show(users) {
views.index($, users);
bind();
}
});
见文章
http://xxing22657-yahoo-com-cn.iteye.com/blog/1158359
http://xxing22657-yahoo-com-cn.iteye.com/blog/1159712
【客户端与服务器端之间的数据通信】
客户器端代码:
$(function(){
var request = {
action: "hello.say",
params: { name: "Panda" }
};
panda.post(request, function(data) {
$("#message").html(data);
});
});
服务器端代码:
api.hello = {
say: function(params) {
return "Hello, " + params.name + "!";
}
};
见文章
http://xxing22657-yahoo-com-cn.iteye.com/blog/1153849
编写 Java 和 JavaScript 扩展
【Java扩展】
直接在工程中创建 java 文件,或者将独立的 Java 工程导出的 jar 文件添加到 Build Path 中;
然后可以用 importPackage(...) 或者 JavaImporter 导入 java package,
可以参考 scripts/lib/panda 的写法。
【JavaScript 扩展】
在 scripts/lib 下创建新的文件夹。
启动应用时,文件夹名称将作为一个对象被创建,并执行文件夹中的所有 js 文件。
可以参考 scripts/lib/panda 的写法。
其他
使用 Proxy 对象拦截方法调用(日志、权限控制、数据校验):
http://xxing22657-yahoo-com-cn.iteye.com/blog/1159366
http://xxing22657-yahoo-com-cn.iteye.com/blog/1159712
HTML5 与 Flash 文件上传:见文章
http://xxing22657-yahoo-com-cn.iteye.com/blog/1154752
Spket 智能感知:见文章
http://xxing22657-yahoo-com-cn.iteye.com/blog/1155510
此外,PandaJS 支持热部署,修改 scripts/app 、 scripts/lib 、 webapp/js/both 下的 js 文件时不需要重启应用。
分享到:
相关推荐
3D建模软件:Rhino二次开发.docx 3D建模软件:Rhino二次开发all.docx 3D建模软件:Rhino二次开发_3D建模核心概念.docx 3D建模软件:Rhino二次开发_3D打印与Rhino二次开发.docx 3D建模软件:Rhino二次开发_...
【Rhino犀牛快捷键大全】是一份详细列出Rhino软件中常用快捷键的文档,旨在提高用户在3D建模过程中的效率。Rhino,全称Rhinoceros,是一款强大的三维建模软件,广泛应用于工业设计、建筑设计、珠宝设计等领域。了解...
【Rhino犀牛快捷键详解】 Rhino犀牛是一款强大的3D建模软件,广泛应用于工业设计、建筑设计、船舶设计等领域。了解并掌握Rhino的快捷键能够显著提高工作效率,以下是一些常用的Rhino快捷键及其功能: 1. **新建与...
Rhino 6.9 快捷键大全 Rhino 6.9 是一款功能强大的三维计算机辅助设计(CAD)软件,具有强大的建模、渲染和动画功能。为了提高工作效率,掌握 Rhino 6.9 的快捷键是非常必要的。本文将为您提供 Rhino 6.9 的快捷键...
RhinoMoq.FromInstance 和扩展-从接口实例创建模拟 它能做什么: 此扩展解决了从现有实例生成模拟的问题。 当您测试依赖于复杂对象Bar的类Foo且希望模拟Bar的某些成员而其余成员要针对原始成员执行时,这很方便。...
Rhino,全称为Rhinoceros 3D,是一款强大的三维建模软件,广泛应用于工业设计、建筑设计、珠宝设计等领域。对于提高工作效率,熟练掌握快捷键是至关重要的。以下是对Rhino快捷键的详细解析: 1. **功能键区**: - ...
rhino-engine-1.7.13.jar
爱特梅尔公司 (Atmel Corporation) 宣布推出用于其AT88SA102S CryptoAuthentication IC、基于AVR的开发工具套件AT88SA-ADK1 Rhino++。爱特梅尔的AT88SA102S器件是业界最安全的认证IC,使用嵌入式SHA-256 引擎和256位...
本教程“Rhino+Level+1+v4”是针对初学者的入门级教程,旨在帮助学习者快速掌握Rhino的基础操作和建模技巧。 在教程中,首先会介绍Rhino的基本界面,包括菜单栏、绘图区和指令区。菜单栏包含了Rhino的所有功能选项...
Rhino的jar包。 Rhino 是开源的 JavaScript 引擎,是完全基于 Java 实现,几乎可以使用 JavaScript 完成 Java 所有的工作。
《PureJS (6.3):Rhino 中的日志与 Proxy 对象》 在JavaScript的世界里,Rhino是一个非常特别的存在。它是由Mozilla开发的一个开源的JavaScript引擎,它允许JavaScript代码运行在Java平台上,提供了丰富的Java对象...
《Rhino 中文版6.28-29:3D建模的高效工具》 Rhinoceros,简称 Rhino,是由美国Robert McNeel & Associates公司开发的一款强大的三维建模软件,尤其在工业设计、建筑设计、船舶制造、珠宝设计等领域广泛应用。...
在"rhino+javafx实现js脚本调试"这个主题中,我们将深入探讨如何结合这两个技术来创建一个JS脚本调试环境。首先,Rhino作为一个JavaScript引擎,它的主要职责是解析和执行JavaScript代码。它支持ECMAScript标准,...
视频教程
视频教程
视频教程
视频教程
RHINO 犀牛基础教程 RHINO 犀牛基础教程是 Rhino 软件的入门级教程,旨在帮助初学者快速掌握 Rhino 软件的基本操作和概念。该教程共分六章,每章节都对应 Rhino 软件的不同方面,包括软件介绍、工作流程、界面操作...
视频教程