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的快乐编程之旅!
转载请注明:谷谷点程序 » Node.js和MongoDB——从MongoJS开始