`

nodejs添加数据库mongodb

阅读更多
为了在 Node.js 中使用 MongoDB,我们需要获取一个模块。
打开工程目录中的 package.json,在 dependencies 属性中添加一行代码:
{
    "name": "lzyfn-name",
    "version": "0.0.1",
    "private": true,
    "scripts": {
        "start": "node app.js"
    },
    "dependencies": {
        "express": "3.4.0",
        "jade": "*",
         "connect-mongodb": ">=1.1.5",    //不用:connect-mongo
        //新添加的mongodb插件
        "mongodb": "*"
    }
}
然后运行 npm install 更新依赖的模块。
 
接下来在工程的目录中创建 settings.js 文件,
这个文件用于保存数据库的连接信息。
我们将用到的数据库命名为 blog,数据库服务器在本地,因此Settings.js文件的内容如下:
module.exports = {
cookieSecret: 'microblogbyvoid',
db: 'blog',
host: 'localhost',
};
db:是数据库的名称,host 是数据库的地址。
cookieSecret 用于 Cookie 加密与数据库无关,我们留作后用。
 
---------------------------------------------------------
 
/home/sunyw/projects/lzyfn/node_modules/connect-mongo/lib/connect-mongo.js:28
  var Store = connect.session.Store;
                             ^
TypeError: Cannot read property 'Store' of undefined 
 
node.js开发指南中的是:
var MongoStore = require('connect-mongo');
把connect-mongo的模块改为模块:connect-mongodb
然后将:
var MongoStore = require('connect-mongo'); 改成:
var MongoStore = require('connect-mongodb');
 
========================== 数据库连接=============================
var url = require('url');
var mongo = require('mongodb');
 
var Server = mongo.Server,
    Mdb = mongo.Db,
    BSON = mongo.BSONPure;
 
var configure = {
    'hostname': 'XXX.XXX.XXX.XXX',
    'port': 27017,
    'username': '',
    'password': '',
    'db': 'test',
};
 
var test_db = new Mdb(configure.db, new Server(configure.hostname, configure.port, {auto_reconnect: true}));
 
 
test_db.open(function (err, db) {
    if (err) {
        console.log("The test_db open failed.");
    } else {
        console.log("Connected to test_db ...");
    }
});
 
 
exports.findByHotelFile = function (req, res) {
    var hf = req.path.split('hotels/')[1].trim();
    test_db.collection('hotels', function (err, coll) {
        coll.findOne({hf: hf}, function (err, item) {
            res.send(item || {});
        });
    });
};
 
 
 
//====================== 工具函数 ==========================
 
function strToArr(str, type) {
    if (str) {
        var arr = str.trim().split(',');
        if (type == 'f') {
            return arr.map(function (v) {
                return parseFloat(v.trim());
            }) || [];
        } else {
            var arr = str.trim().split(',');
            return arr.map(function (v) {
                return v.trim();
            }) || [];
        }
    }
    return [];
}
 
function parsePrice(price) {
    var prices = strToArr(price, 'f'), l = prices.length, parr = [];
    if (l > 0) {
        if (l % 2 == 1) {
            prices.push(10000);
        }
        for (var i = 0; i < l; i += 2) {
            parr.push({ price: { $gte: prices[i], $lte: prices[i + 1] }});
        }
        return parr;
    }
    return [
        { price: { $gte: 0}}
    ];
}
 
 参考:http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics