首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Pure JS (4.2): Web 运用中服务器端 JS 调用 MongoDB 的简单示例

2012-10-06 
Pure JS (4.2): Web 应用中服务器端 JS 调用 MongoDB 的简单示例Pure JS (4.2): Web 应用中服务器端 JS 调

Pure JS (4.2): Web 应用中服务器端 JS 调用 MongoDB 的简单示例
Pure JS (4.2): Web 应用中服务器端 JS 调用 MongoDB 的简单示例
  接着上一篇文章,本文将通过一个简单的示例说明如何通过服务器端 JS 调用 MogoDB,以及客户端 JS 向服务器端发起请求的方式。
  首先我们可以先运行示例程序,然后我将介绍整体流程,最后我们再具体看看客户端 JS 和服务器端 JS 是如何编写的。
  我们将看到通过使用 JavaScript Object 贯穿整个数据流程的模式是如何简化我们的开发的。

运行示例
  下载附件,并将工程添加到 eclipse 中,配置 Java 7 JDK ,在命令行中运行 mongod;
  打开文件 main/purejs/core/JSServer.java,鼠标右键 -> Run As -> Java Application 。
  在浏览器中输入 http://localhost:8080 进行访问,将看到如下界面:


  这个例子非常简单,只包括一个 users 列表,对每条数据可以执行两个操作:
  1. 修改 description,并点击 Save 进行保存
  2. 点击 Delete 删除对应的 user

  最后一行用于增加 user ,可以执行两个操作:
  1. 输入 name 和 description,并点击 Add 增加记录
  2. 点击 Clear ,清空 name 和 description ,重新输入


  每次操作完成后,users 列表将重新排序。

整体流程

  我们可以直接以 JavaScript 对象作为 MongoDB 数据操作的参数,因此直接从客户端传递一个对象到服务器端是较好的方式。


  接下来让我们结合例子进行说明。


客户端 JS
  客户端 js 位于 webapp/js/index.js ,处理界面操作,并向服务器端发起请求。
  除去一些界面操作的代码,客户端向服务器端发起请求的地方有三处:

  获取 users 列表

    【params】:执行操作所需的参数,可以是 object 或基本类型。

  第二个参数:请求成功时执行的函数,这个函数可以以参数形式接收返回的数据 ( result.data )
  第三个参数:请求失败时执行的函数,这个函数可以以参数形式接收错误信息 ( result.error )



服务器端 JS
  服务器端 js 位于 scripts/app/api.users.js,根据获得的参数,对 MongoDB 的 conllection 进行操作 。

  服务器端的 api.users 对象实现了三个方法:
  1. list :获取 users 列表;当 users 为空时,进行数据初始化
  2. save :保存 user,以 name 作为查询条件,创建或更新 user
  3. remove : 删除 user,以 name 作为查询条件移除特定的 user

  实现如下:
pure.db.eval(function(){var users = db.users;users.drop();users.ensureIndex({ name: 1 });users.insert({ name: 'user1', desc: 'desc1' });users.insert({ name: 'user2', desc: 'desc2' });users.insert({ name: 'user3', desc: 'desc3' });});

  我们使用 eval 进行数据的初始化,pure.db.eval 可以接受 String 或 Function 类型的参数,Function 实际上也是转为 String 执行的。

  初始化的操作包括:
  1.通过 users.drop() 删除 collection
  2.在 name 上建立索引,并且排序方式为升序
  3.插入三个 users 对象

总结
  客户端和服务器端都使用 JavaScript 进行编程,MongoDB 也有支持 JavaScript 的API,因此我们可以以一个 JavaScript 对象作为参数贯穿整个流程;
  这将大大简化我们的开发,并且理解上也十分直观,这也正是“ Pure JS ”想要达到的效果。

  下一篇文章将介绍 pure.db.js 是如何对 MongoDB 的数据操作进行封装的,以及一些与 MogoDB Driver 有关的内容。

热点排行