nodejs开发——mongodb数据库与express框架结合

       我们在上一篇博客中实现了对mongodb数据库的入门《nodejs开发——mongodb数据库入门》,使用起来非常简单。该篇博客主要来结合nodejs中的express框架,来研究下在项目中如何配置数据库才能符合模块化的要求,并让架构更加合理,代码更加简洁。

  • mongodb配置
       首先创建一个config.js文件,作为对数据库的全局配置,代码实现如下:
module.exports = {
    mongodb: "mongodb://localhost/Test"
};
这里主要是导出一个mongodb变量,该变量声明了数据库的地址,以及该数据库的名字为“Test”。这样单独抽取是为了以后的配置方便。


  • mongoose配置
       从上一篇博客中可以看到,使用mongoose这个第三方库操作mongodb非常方便,这里我们创建一个mongoose.js,单独对mongoose进行配置,该脚本主要来连接数据库:
//引入mongoose模块
var mongoose = require('mongoose');
//引入上面实现的config.js
var config = require('./config');

//实现一个start()函数
module.exports.start = function () {
    //创建一个连接数据库的实例
    var db = mongoose.connect(config.mongodb);
    require('./user.server.model');
    return db;
};
上述代码中的user.server.model.js我们会在下面实现。

  • model模型的配置
      数据库中的某一张表可以通过以下的方式实现。下面即实现一张User表:
var mongoose = require('mongoose');

//一个Schema,声明表中的字段
var UserSchema = new mongoose.Schema({
    //用户id和用户名
    uid: Number,
    username: String
});

//声明一张User表
mongoose.model('User', UserSchema);


  • 实现文件
      当在遇到涉及数据库操作的地方,以及使用的是express框架,可以用以下的方式:
var express = require('express');
var app = express();
//数据库mongodb使用
var mongoosejs = require('./mongoose');
mongoosejs.start();//配置

var mongoose = require('mongoose');
//User表
var User = mongoose.model('User');

//某一个接口实现,包含数据库操作
app.get('/', function (req, res, next) {
    var user = new User({
        uid: 3,
        username: "Jim"
    });

    user.save(function (error) {
        if (!error) {
            User.find({}, function (error, result) {
                if (!error) {
                    res.json(result);
                }
                else {
                    res.send("error");
                }
            });
        }
    });
});

app.listen(3000, function () {
    console.log("Server Running on http://localhost:3000");
});


      经过以上步骤后,我们就可以在项目的任何地方执行数据库操作了。我们把所有有关数据库的配置都放到了config.js和mongoose.js中,方便管理。就算有新的表要增加,或者数据库地址更改,也只要改这里就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值