OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

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


分享到
分类 JS学习   发布 goyoo  1397008233832
注意 转载须保留原文链接,译文链接,作者译者等信息。  
(本文由 goyoo 提供,OurJS对格式略有调整,欢迎您向我们分享经验,心得,翻译

 

介绍

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

 

以下是需要的软件组件:

·         Ubuntu 12.04 x32 VPS

·         MongoDB v2.4.6

·         Node.js v0.10.20

·         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           #  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模型,这样使其既实现轻量级,又具备高性能,是构建运行在分布式设备的数据密集型实时应用程序的完美选择”。

 

如果你还没有安装,请先查看这篇教程的介绍说明。

先确认一下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数据库连接,插入,读取数据。

 

更多资源

·         http://www.nodejs.org/

·         http://docs.mongodb.org/ecosystem/drivers/node-js/

·         http://www.mongodb.org/

·         https://npmjs.org/

原文地址: 点此
社区评论 ( Beta版 )
  • #0 luoerming 1408069850507

    点解喜欢的文章也不能收藏一下呢!!!

  • #1 newghost 1408077804300

    @luoerming #0

    嗯,这个功能以后可能会增加。

OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. NODE.JS为什么会成为企业中的首选技术
  2. 为什么你写的Python运行的那么慢呢?
  3. 快乐Node程序员的10个习惯
  4. 我为什么不从NodeJS切换到Go
  5. 用纯CSS实现的箭头
  6. 在JavaScript里写类层次结构?别那么做!
  7. HTML和CSS是什么玩意儿?
  8. 为什么优秀的管理者如此罕见
  9. 没必要害怕Angular.Js
  10. 静态web的回归
  11. AirJD-简单好用的免费建站工具

 相关阅读 - JS学习
  1. [译] JavaScript 开发者经常忽略或误用的七个基础知识点
  2. 通过javascript把图片转化为字符画
  3. 理解JavaScript中的Event Loop
  4. JavaScript教程:Airbnb代码规范
  5. JS学习:JavaScript的核心
  6. Node初学者入门,一本全面的NodeJS教程
  7. 编写更好的jQuery代码的建议
  8. Javascript模块化编程:AMD规范及require.js用法
  9. 我最喜欢的jQuery插件模板
  10. 快乐Node程序员的10个习惯

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号