Node.js與MongoDB的基本連接示例


Node.js與MongoDB的基本連接示例

前提

已經安裝了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0。

初始化數據

啟動MongoDB服務,在test數據庫中插入一條實例數據:

db.user.install({name:"scaleworld",age:27});

在Node.js中引入MongoDB模塊

npm install mongodb

編寫mongodbDemo.js

復制代碼
var mongodb = require('mongodb');
var server = new mongodb.Server("localhost",27017,{safe:true});
new mongodb.Db('test',server,{}).open(function(error,client){
    if(error) throw error;
    var collection = new mongodb.Collection(client,'user');
    collection.find(function(error,cursor){
        cursor.each(function(error,doc){
            if(doc){
                console.log("name:"+doc.name+" age:"+doc.age);
            }
        });
    });
});
復制代碼

運行

復制代碼
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version
================================================================================
Please ensure that you set the default write concern for the database by setting    =
=   one of the options                                                                 =
=                                                                                      =
=     w: (value of > -1 or the string 'majority'), where < 1 means                     =
=        no write acknowlegement                                                       =
=     journal: true/false, wait for flush to journal before acknowlegement             =
=     fsync: true/false, wait for flush to file system before acknowlegement           =
=                                                                                      =
=  For backward compatibility safe is still supported and                              =
=   allows values of [true | false | {j:true} | {w:n, wtimeout:n} | {fsync:true}]      =
=   the default value is false which means the driver receives does not                =
=   return the information of the success/error of the insert/update/remove            =
=                                                                                      =
=   ex: new Db(new Server('localhost', 27017), {safe:false})                           =
=                                                                                      =
=   http://www.mongodb.org/display/DOCS/getLastError+Command                           =
=                                                                                      =
=  The default of no acknowlegement will change in the very near future                =
=                                                                                      =
=  This message will disappear when the default safe is set on the driver Db           =
========================================================================================
name:scaleworld age:27
復制代碼
雖然最后打印出了我們之前插入的數據,但是前面一大串的錯誤還是人看着不舒服,我們要消滅它們。

Error: Cannot find module '../build/Release/bson'的解決辦法

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version

頭兩行說的是沒有發現bson模塊。好辦我們立馬安裝:

npm install bson

然后將D:\nodejsdemo\node_modules\mongodb\node_modules\bson\ext\index.js中的bson = require('../build/Release/bson')改成bson = require('bson') ,重新運行。

不過這樣只是解決頭兩行的問題,還有用=包圍起來的問題。

“Please ensure that you set the default write concern for the database”的解決辦法

從最后一句話“This message will disappear when the default safe is set on the driver Db”我們就可以看出該問題的解決辦法,只要將數據庫連接設置為安全即可。

具體代碼修改如下:

new mongodb.Db('test',server,{})修改為new mongodb.Db('test',server,{safe:true})

 

 
分類:  MongoDB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM