Node JS和MongoDB的集成简单示例
在本文中,我们将讨论如何将Node JS平台与MongoDB NoSQL数据库集成并开发简单的Node MongoDB应用程序。
Node JS和MongoDB简介
我们已经熟悉Node JS Platform。
如果您不熟悉Node JS,请阅读我的Node JS Basics帖子。
MongoDB是MongoDB Inc.(以前称为10gen)提供的基于跨平台文档,高性能和高度可扩展的No SQL数据存储。
它以文档的形式存储数据。
要安装和学习MongoDB的基础知识,请参阅MongoDB教程。
Node JS:MongoDB安装
我们应该使用" mongodb" Node JS模块使用MongoDB NoSQL Data Store开发Node JS应用程序。
由于该模块不是默认的节点JS模块,因此我们需要使用NPM(节点软件包管理器)安装此软件包。
要安装" mondgodb"模块:
npm install -g mongodb
这里的选项" -g"表示全局安装此软件包," mongodb"表示安装Node JS MongoDB模块。
在这里忽略错误。
这些与某些Windows OS相关,并且不会影响我们的Node JS Platform开发。
现在,在本地NPM存储库中观察节点" mongodb"模块,如下所示。
其中我们可以看到在"/node_modules"处添加了新的" mongodb"文件夹,这意味着我们的安装已成功完成。
Node JS和MongoDB示例
节点JS和MongoDB设置完成。
现在是时候开发一个简单的应用程序,以使用Node JS脚本在MongoDB Store中存储数据了。
像我之前的示例一样,我们使用Enide Studio 2014 IDE来开发此应用程序。
- 在Enide IDE中创建一个Node JS项目。
项目名称:" node-mongodb"
注意:-现在开始,我们将按以下方式引用" PROJ_ROOT_DIR"值
${PROJ_ROOT_DIR} = D:\RamWorkspaces \ NodeWorkSpace \ node-mongodb
- 复制我先前示例中的package.json文件,并使用以下内容对其进行更新
package.json
{ "name": "node-mongodb", "version": "1.0.0", "private": true, "scripts": { "start": "node node-mongodb.js" }, "dependencies": { "mongodb": "~2.0" } }
注意:
当我在Windows 7系统中安装MongoDB 2.6时,我将"~2.0"值引用到Node:MongoDB Module。
它应该与我们的mongodb模块版本匹配。当我安装" npm install -g mongodb"时,它将在" node_modules/mongodb"文件夹中创建一个" package.json"文件
在我的系统中,它已在" C:\Users \ rambabu.posa \ AppData \ Roaming \ npm \ node_modules \ mongodb"文件夹中创建,如下所示
当我们打开此" package.json"文件时,您将找到以下版本的Node:MongoDB模块
{ "name": "mongodb", "version": "2.0.37", ... }
That's why we are using "mongodb"; module version as "~2.0"; in our project's "package.json"; file.- 将" mongodb"模块库添加到我们的项目中。
在${PROJ_ROOT_DIR}打开命令提示符
安装" npm install –save mongodb"命令来
这里的" -save"选项表示从本地NPM模块(C:\Users \ rambabu.posa \ AppData \ Roaming \ npm \ node_modules)中提取" mongodb"模块库,并将该库添加到我们的项目中。
如果在Enide IDE中刷新项目,则可以观察到" mongodb"库已添加到项目构建路径,如下所示:
- 创建一个" node-mongodb.js" JavaScript文件并更新以下内容
node-mongodb.js
var mongodb = require('mongodb'); var mongoClient = mongodb.MongoClient; var url = 'mongodb://localhost:27017/jdproject'; mongoClient.connect(url, function(err, db) { createDocuments(db, function() { db.close(); }); }); var createDocuments = function(db, callback) { var collection = db.collection("jduser"); collection.insert([ {firstname : "Rams",lastname: "Posa",emailid: "[email protected]"}, {firstname : "Mani",lastname: "Nulu",emailid: "[email protected]"}, {firstname : "Bhargs",lastname: "Nulu",emailid: "[email protected]"}, ], function(err, result) { callback(result); }); }
代码说明
第1行:将我们的项目依赖模块" mongodb"加载到我们的项目内存中。
第2行:使用在第1行创建的" mongodb"对象,我们创建了MongoDB Client。
第4行:这是MongoDB连接URL。
格式为:
mongodb://[hostname]:[mongodb-server-port-number]/[mongodb-dbname]
例:
mongodb://本地主机:27017/jdproject
这里的主机是" localhost",MongoDB默认端口号是" 27017",我的项目MongoDB的数据库名称是" jdproject"
行号:6-10,使用MongoDB连接URL创建MongoDB连接,并调用" createDocuments"函数。
第12-21行,定义了一个" createDocuments"功能。
" createDocuments"功能执行以下操作:
Line No: 13, Creating a "jduser"; MongoDB Collection.
Line No: 14-20, Inserting 3 MongoDB Documents using "collection.insert()"; function call into "jduser"; MongoDB Collection.- 我们最终的项目结构如下所示:
- 测试我们的Node-MongoDB应用程序
如下所示启动MongoDB Server(我的MongoDB安装在" D:\MongoDB2.6")
mongod --config D:\MongoDB2.6\mongo.config
连接到MongoDB客户端并检查当前数据库,如下所示
show dbs;
其中我们只能观察到两个默认的MongoDB数据库。
打开${PROJ_ROOT_DIR}的CMD提示符,然后运行我们的" node-mongodb.js"应用程序,如下所示
node node-mongodb.js
现在转到MongoDB客户端并执行" show dbs"命令,并观察新创建的" jdproject"数据库,如下所示:
连接到新创建的" jdproject" MongoDB数据库,请参见新创建的" jduser" MongoDB集合和" jduser"集合数据,如下所示
use jdproject; show collections; db.jduser.find();