sunbird 发表于 2017-2-21 12:31:08

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/').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, $lte: prices }});
}
return parr;
}
return [
{ price: { $gte: 0}}
];
}
参考:http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/
 
页: [1]
查看完整版本: nodejs添加数据库mongodb