01月22, 2014

Node.js和MongoDB——从MongoJS开始

原文:Node.js and MongoDB - Getting started with MongoJS

在过去几个月里,毫不夸张的说,Node.js和MongoDB在软件和web行业简直大为轰动。不仅仅是前沿创业公司,大中型企业也通过利用大容量,可持久和可扩展app来促使这两个技术给用户带来更好的体验。

Node.js是什么?

Node.js是一个建立在Chrome的JavaScript运行环境的平台,为了更方便,更快捷地建立可扩展的网络应用。Node.js利用事件驱动,非阻塞式I/O模型使它更为轻量和高效,对于运行在分布式设备上数据密集型和实时应用表现完美。

MongoDB是什么?

MongoDB是一个可扩展,高性能,开源的非关系型数据库。

本篇文章将要涵盖一些基础以及使你从Node.js和MongoDB应用开始。首先确定你的开发机上已经装了Node.js和MongoDB。

让我们测试你的Node.js是否安装,并开启MongoDB服务器。

$ node -v
$ mongod

MongoJS介绍

MongoJS是一个出色小巧的Node.js包,利用一个API来访问MongoDB,与JavaScript shell非常相似。
MongoJS安装

一旦Node.js已经在你机器上正确安装,你就能利用它内部的包管理器NPM来安装MongoJS:

$ npm install mongojs

现在我们就可以开发我们的JavaScript应用并且连接我们的MongoDB服务器了:

// app.js
var databaseUrl = "mydb"; // "username:password@example.com/mydb"
var collections = ["users", "reports"]
var db = require("mongojs").connect(databaseUrl, collections);

databaseUrl 包括数据库服务器host和port以及需要连接的数据库名。默认的host是localhost,port是27017。如果你要用开发环境默认的值,对于我们这个应用,databaseUrl仅仅包含实际的数据库名字。

Collections是一连串应用使用者的集合。它不是必须的但却是首选的,因为它允许我们去计算Node.js应用里有多少MongoDB JavaScript的顾客喜欢这个API。

例如,在一个特定集合中找到所有的女性用户。

// app.js
db.users.find({sex: "female"}, function(err, users) {
  if( err || !users) console.log("No female users found");
  else users.forEach( function(femaleUser) {
    console.log(femaleUser);
  } );
});

注意在MongoDB的控制台,我们的初始查询是一个近似复制的查询。除了查询之外,在Node.js源码里(例如app.js)我们通过一个回调函数来处理查询的结果。

Node.js实现了基于并发模式的事件函数,几乎一切都是回调函数。这使得Node.js应用是非阻塞和高性能的。

回调函数的用途是显而易见的——检查错误和结果,如果查询返回女性用户就在控制台输出。

如何在集合里存储一个新用户?确切地说你想在控制台显示什么,你的代码就会像这样:

// app.js
db.users.save({email: "srirangan@gmail.com", password: "iLoveMongo", sex: "male"}, function(err, saved) {
  if( err || !saved ) console.log("User not saved");
  else console.log("User saved");
});

更新一个记录/文档,举例如下:

// app.js
db.users.update({email: "srirangan@gmail.com"}, {$set: {password: "iReallyLoveMongo"}}, function(err, updated) {
  if( err || !updated ) console.log("User not updated");
  else console.log("User updated");
});

现在我们就可以在控制台运行这个应用程序了:

$ node app.js

这样我们就完成了,极为简单快速地开始了Node.js + MongoDB的快乐编程之旅!

本文链接:https://75team.com/post/node-js和mongodb-从mongojs开始.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。