• 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: odejsdemo ode_modulesmongodb ode_modulessonextindex.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
  • 相关阅读:
    jsp 表单回显
    jquery ajax
    锋利的jquery 事件 动画
    锋利的jquery DOM操作
    锋利的jquery
    JavaScript闭包
    oracle
    日期转化
    二分查找
    linux 常用命令
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4314801.html
Copyright © 2020-2023  润新知