Node JS和MongoDB的集成简单示例

时间:2020-02-23 14:41:08  来源:igfitidea点击:

在本文中,我们将讨论如何将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();