`
goyoo
  • 浏览: 9396 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何在一个VPS上连接Node.js到一个MongoDB数据库?

阅读更多

如何在一个VPS上连接Node.js到一个MongoDB数据库?

 by Adil Mezghouti

 

介绍

 

在这篇学习指南里,我们会介绍如何在一个VPS上连接Node.js到一个MongoDB数据库,并做一些基本的数据操作。

 

以下是需要的软件组件:

<!--[if !supportLists]-->·         <!--[endif]-->Ubuntu 12.04 x32 VPS

<!--[if !supportLists]-->·         <!--[endif]-->MongoDB v2.4.6

<!--[if !supportLists]-->·         <!--[endif]-->Node.js v0.10.20

<!--[if !supportLists]-->·         <!--[endif]-->The MongoDB Node.js 驱动器

 

MongoDB

 

“MongoDB是一个面向文档的开源数据库,具有性能高,可用性强并且易扩展的特点。”

 

如果你不熟悉MongoDB或者未安装,请先查看这份指南

 

先来确定MongoDB进程在运行:

 

ps -ef | grep mongo

输出应该是下面这样的东西:

 

mongodb   1307  1  0 02:27 ?        00:00:01 /usr/bin/mongod --config /etc/mongodb.conf 

如果没有运行,从MongoDB bin目录给出以下命令:

 

mongod

MongoDB有一个控制台客户端,给出下列命令来启动它:

 

mongo

你会看到这样的一个输出(不用理会警告):

 

MongoDB shell version: 2.4.4
connecting to: test
Server has startup warnings:
Mon Oct  7 20:40:35.209 [initandlisten]
Mon Oct  7 20:40:35.209 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

运行这条命令,列出现存的数据库:

 

show dbs

运行这条命令,显示选中的数据库:

 

db

运行一下命令,切换到“测试”数据库,以显示它包含的集合:

 

use test
show collections 

 

这里有一个命令列表,可以在控制台客户端使用,你可以敲入“help”获得完整的命令列表:

 

show dbs                    #show database names
show collections          #show collections in current database
show users                 # show users in current database
show profile                # show most recent system.profile entries with time >= 1ms
show logs                   # show the accessible logger names
show log [name]          # prints out the last segment of log in memory, 'global' is default
use <db_name>          #  set current database
db.foo.find()                # list objects in collection foo
db.foo.find( { a : 1 } )    #list objects in foo where a == 1
it                                #result of the last line evaluated; use to further iterate
exit                            #quit the mongo shell

 

Node.js

 

“Node.js是一个建立在Chrome的JavaScript运行环境的平台,可以轻松地构建快速,可伸缩性高的网络应用程序。Node.js采用事件驱动,非阻塞I/O模型,这样使其既实现轻量级,又具备高性能,是构建运行在分布式设备的数据密集型实时应用程序的完美选择”。

 

如果你还没有安装,请先查看这篇教程的介绍说明。
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

先确认一下Node.js进程在运行:

node -v

作为命令输出,你应该看一下Node.js版本。

 

MongoDB Node.js驱动器

 

这个驱动器是MongoDB官方支持的Node.js驱动器,用纯JavaScript写出来,提供一个本地异步Node.js接口到MongoDB。

 

使用npm来安装驱动器:

npm install mongodb

 

连接到MongoDB,并执行数据操作

 

现在是时候来写可以允许你的Node.js应用程序连接到MongoDB的代码了,有3步操作:从数据库连接,写入,读取。

 

要执行你的代码,我们需要创建一个新文档,取名为:'app.js'.

 

建好文档后,用你的首选编辑器添加下列代码:

 

var MongoClient = require('mongodb').MongoClient
    , format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function (err, db) {
    if (err) {
        throw err;
    } else {
        console.log("successfully connected to the database");
    }
    db.close();
});

 

输入以下命令,执行app.js文档:

 

node app.js

你应该在输出中看到这样的结果:成功连接到数据库(successfully connected to the database)。

 

现在添加一些语句,向名字为“test_insert”的一个新集合插入东西。

 

var MongoClient = require('mongodb').MongoClient
    , format = require('util').format;

MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
    if(err) throw err;

    var collection = db.collection('test_insert');
    collection.insert({a:2}, function(err, docs) {
        collection.count(function(err, count) {
            console.log(format("count = %s", count));
            db.close();
        });
    });
});

 

添加另一些代码块来验证数据已经输入到数据库。

 

var MongoClient = require('mongodb').MongoClient
    , format = require('util').format;

MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
    if(err) throw err;

    var collection = db.collection('test_insert');
    collection.insert({a:2}, function(err, docs) {
        collection.count(function(err, count) {
            console.log(format("count = %s", count));
        });
    });

    // Locate all the entries using find
    collection.find().toArray(function(err, results) {
        console.dir(results);
        // Let's close the db
        db.close();
    });
});

 

恭喜啦!现在你可以在一个VPS上,用一个Node.js应用程序从MongoDB数据库连接,插入,读取数据。

 

资源

<!--[if !supportLists]-->·         <!--[endif]-->http://www.nodejs.org/

<!--[if !supportLists]-->·         <!--[endif]-->http://docs.mongodb.org/ecosystem/drivers/node-js/

<!--[if !supportLists]-->·         <!--[endif]-->http://www.mongodb.org/

<!--[if !supportLists]-->·         <!--[endif]-->https://npmjs.org/

0
0
分享到:
评论

相关推荐

    i:开源Node.js Headless CMS可以轻松构建可定制的API

    Strapi是一个免费的开源无头CMS,可在任何需要的地方提供您的内容。 保持对数据的控制。 使用Strapi,您可以知道数据的存储位置,并且始终可以完全控制。 自托管。 您可以按照自己的方式托管和扩展Strapi项目。 ...

    chatterbox-server

    JavaScript,通常与前端开发关联,但在这个上下文中,它可能是用于服务器端编程,比如通过Node.js框架。 在Node.js中,JavaScript可以被用来处理HTTP请求,构建RESTful API,以及管理和处理用户之间的实时通信。...

    backend-project-lvl2

    总之,"backend-project-lvl2"是一个基于JavaScript的后端项目,通过参与该项目,开发者可以深入理解Node.js后端开发,掌握RESTful API设计、数据库交互、测试实践等关键技能,并学习如何组织和管理复杂的后端项目。

    DiscordBot:测验

    总的来说,“DiscordBot:测验”项目涵盖了JavaScript编程、Node.js应用开发、事件驱动编程、API交互以及可能的数据库集成等多个IT知识点,为开发者提供了一个实践和学习的良好平台。通过这个项目,开发者不仅可以...

    Dashboard-Full

    好处市场上的主要产品需要功能强大的VPS才能管理仅50个帐户,而仅需一个t2.small即可管理2.400 VPS甚至在正确使用多线程的情况下甚至更多API的反向工程师以制作DMS,Scrape Followers和Hashtags 通过正确使用...

    trash-bot-discord

    常见的选择有SQLite、MongoDB等,它们可以通过Node.js的适配器连接到项目。 6. **部署与持续集成**:完成开发后,机器人需要部署到服务器上才能24/7运行。这可能涉及到使用服务如Heroku、DigitalOcean或自托管的VPS...

    projexp-discord-bot:开发不和谐机器人的初步经验

    在本文中,我们将深入探讨如何使用JavaScript开发一个 Discord 机器人,这是基于“projexp-discord-bot”的初步经验分享。Discord 是一个流行的即时通讯平台,特别受到游戏玩家的欢迎,而 Discord 机器人则可以自动...

    nudlibot:一个友好的Sicord机器人

    综上所述,尽管提供的信息有限,但我们可以推断 **nudlibot** 项目涵盖了Discord机器人开发的多个方面,涉及到技术栈包括Node.js、discord.js库以及可能的数据库和API集成。深入学习和理解这些知识点,将有助于你...

    Dancewebsite:这是Rajendra设计的舞蹈网站

    为了部署这个网站,Rajendra可能选择了云服务提供商,如AWS或Heroku,或者自托管在VPS上。他还需要考虑性能优化,比如通过CDN分发静态资源,使用缓存策略提高页面加载速度,以及对SEO友好的URL结构和元标签,以提升...

    N-Blog:我的第一个项目——博客

    对于初学者来说,完成N-Blog项目不仅可以深化对前端基础知识的理解,还可以接触到前后端交互、数据持久化(如使用SQLite或MongoDB数据库存储博客数据)等更高级的话题。随着项目的深入,开发者还可能学习到版本控制...

    Blog-v1.0:第一版个人博客源代码

    博客-v1.0是个人博客的第一版源代码,它代表了一个初阶的、自定义的在线平台,允许用户发表文章、分享观点,并与访问者互动。这个开源项目为那些希望学习编程、理解Web开发或者想要打造自己个性化博客的人提供了一个...

Global site tag (gtag.js) - Google Analytics