我们在上一篇博客中实现了对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中,方便管理。就算有新的表要增加,或者数据库地址更改,也只要改这里就可以了。