惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
S
Securelist
博客园 - Franky
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
The Cloudflare Blog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
AI
AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Schneier on Security
Schneier on Security
Attack and Defense Labs
Attack and Defense Labs
Vercel News
Vercel News
腾讯CDC
Google DeepMind News
Google DeepMind News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
Netflix TechBlog - Medium
量子位
S
Schneier on Security
Hacker News: Ask HN
Hacker News: Ask HN
Cyberwarzone
Cyberwarzone
S
Security Affairs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News and Events Feed by Topic
T
Tenable Blog
PCI Perspectives
PCI Perspectives
MyScale Blog
MyScale Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
W
WeLiveSecurity
N
News | PayPal Newsroom
P
Proofpoint News Feed
O
OpenAI News
C
CERT Recently Published Vulnerability Notes
B
Blog
Cisco Talos Blog
Cisco Talos Blog
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Spread Privacy
Spread Privacy

博客园 - 岁月无声

Spring Boot(3)---自定义spring boot starter 问题 那就开始吧---写在2014年8月 基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案) 从操作系统机制浅谈服务器及服务平台方案的选择 Node.JS 模块,包管理与开发 Node.JS进行简单新技术分析及环境搭建 MongoDB (1)---复制集与sharding安装配置 MongoDB (5)---不仅仅是数据库 MongoDB (0)---写在前面 NoSQL--MongoDB选择 云平台综述 物联网(1)----手机NFC识别方案平台 快速建立一个手机网站 基于HTML5手机技术方案(如Phonegap)的调试方案 由NodeJS浅谈无敌的前端开发工程师 PHP调试环境 大话网站---从Hello World到高并发网站 浅谈预演框架选择 最后的绝唱-----Symbian 最新的IDE开发环境搭建(Updated on 2011-03-07)
Node.JS平台上的数据库Redis,MongoDB,HBASE,MySQL
岁月无声 · 2013-02-25 · via 博客园 - 岁月无声

一. MongoDB:

    因为10gen是的赞助商之一,所以MongoDB有着良好的Node.JS支持。

    a. 基本支持:,在Node.JS对MongoDB的支持有两种常用的组件mongodb, mongoose.下面分别介绍。

     (1)基于mongodb的支持。这个for Node.JS的驱动是基于事件驱动的,所以用法基本上都是异步回调函方式。下载驱动组件$npm install -gd mongodb

     在testdb.js加入如下代码:     

  var mongodb = require('mongodb');
  var server = new mongodb.Server("127.0.0.1", 27017, {});
  var connection = new mongodb.Db('test', server, {safe:true}).open(function (error, client) {
      if (error) throw error;

             var collection = client.collection('users');
      var test =collection.find({}, {limit:10}).toArray(function(err, docs) {
         console.dir(docs);
           });

            //insert section
        var doc1 = {id:33,name:'liuyang1'};
      var doc2 = {id:44,name:'liuyang2'};
      collection.insert([doc1,doc2],function(err,result){
              console.log(result);
           });


           console.log('this is a test result......\n'); 
      });

    (2)基于mongoose的支持。

  下载驱动组件$npm install -gd mongoose

     测试代码如下:

     var mongoose = require('mongoose');
   var conn = mongoose.connect('mongodb://localhost/test');
 
   var db = mongoose.connection;
   db.on('error', console.error.bind(console, 'connection error:'));
     db.once('open', function callback (err) {
       if (!err){console.log('opened');}
     });
 
     var Schema = mongoose.Schema;
 
    var Person = new Schema({
          id   : Number
        , name : { type: String}
       
      });   
 var result = mongoose.model('users', Person);
 var PersonCollection = mongoose.model('users');
 var one = new PersonCollection();
 one.title ="zyq";
 one.age = 38;
 one.save(function(err){
        if(err){
              console.log('failed!!!!');
        }else{
              console.log('successful!!!!');
        }// end of if block
 });


 //test find
 PersonCollection.find(function (err, persons){
     if(!err){
      console.log(persons);
     }
 });

    b.MongoDB的REST 支持:

    由于MongoDB的BJSON数据存贮模式,天生的对JSON格式数据支持。在些条件下创建的REST支持最方便不过。

  1.-rest启动参数对网页管理的支持:

  2.快速搭建基于Node.JS,支持REST Web Service方式,JSON的格式MongoDB访问平台:

    首先安装mongodb 驱动:$npm install mongodb -gd.

    安装mongodb的rest 组件:$npm install mongodb-rest -gd

    直接运行mongodb-rest.(在运行之前,找到这个组件目录(在nodejs全局模块目录如:/usr/local/nodejs/lib/node_modules/mongodb-rest下,找到config.json.修改其中的mongodb的服务器地址端口为正确的数据,,不然会报unauthorized错误)

   如果说不能运行,且报说createServer错误,就要去修改组件目录下的server.js把其中的var app = module.exports.app = express.createServer();改为var app = module.exports.app = express();

  代码有点老了:)不过用来学习还是不错的。

    此时就可以通过REST web Service方式来访问mongoDB 了,我们可以用curl测试一下:

  $$ curl -d '{ "A1" : 201 }' -H "Content-Tyson" http://localhost:3000/test/example 

二,Redis数据库:

   Redis的优缺点及应用场景在这里就不提了,可以查找我的别的日志了解一下。如果用在复杂些的缓存场景,用它是没错的,至少从目前技术角度来看。

 1.安装Redis 数据库。到官网下载安装包。

http://redis.io/ 这里应该是2.6.10版本了。

$tar -xzvf redis-2.6.10.tar.gz

$cd redis-2.6.10

$make

$make install

ok现在你可以用redis自带的客户端来测试了

先运行Redis 服务器

$redis-server

$redis-cli

>redis 127.0.0.1:6379> set zyq 'is a good man'

redis 127.0.0.1:6379>get zyq

显示'is a good man' ok,一切正常

安装Node.JS的Redis驱动模块:

$sudo npm install redis -gd

安装完后可以写代码进行测试了:

var redis = require("redis");

var client = redis.createClient();    

client.on("error", function (err) {     console.log("Error " + err); });

client.set("skey", "this is string", redis.print);

client.hset("hashkey", "hashtest a", "abc", redis.print);

client.hset(["hashkey", "hashtest b", "some otest"], redis.print);

client.hkeys("hashkey", function (err, replies) {  

  console.log(replies.length + " replies:");    

     replies.forEach(function (reply, i) {

            console.log("    " + i + ": " + reply);

    });

    client.quit();

});

三,MySQL数据库

四,HBase数据库:

---待续-----