设为首页 收藏本站
查看: 769|回复: 0

[经验分享] nodejs添加数据库mongodb

[复制链接]

尚未签到

发表于 2017-2-21 12:31:08 | 显示全部楼层 |阅读模式
为了在 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, $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/
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345286-1-1.html 上篇帖子: nodejs 入口app.js 分解 下篇帖子: nodeJS获取用户IP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表