express + mongoose 的使用

0

在express框架下使用mongoose这个扩展方便进行mongoDB的增删查改,更加直观。

1.连接数据库

在项目的根目录下新建了一个config文件夹,config.js记录mongoDB数据库连接参数

1
2
3
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/BBook',{useMongoClient: true});
module.exports = {mongoose};

2.Model

再在根目录新建一个models文件夹,用于存放不同数据类型的schema,model继承Base.js

1
2
3
4
5
6
7
8
9
10
var mongoose = require('../config/config');
mongoose.Promise = global.Promise;
var Schema = mongoose.Schema;
var ObjectId = Schema.Types.ObjectId;
exports.mongoose = mongoose;
exports.Schema = Schema;
exports.ObjectId = ObjectId;
exports.Mixed = Schema.Types.Mixed;

其他model示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var base = require('./Base');
var ObjectId = base.ObjectId;
const Book_Schema = new base.Schema({
title: String,
catalog: String,
sub1: {type:String, default:'ceshi测试123'},
sub2: String,
img: String,
reading: String,
online: String,
bytime: String,
createTime: {
type: Date,
default: Date.now
},
updateTime: {
type: Date,
default: Date.now
}
}, {
versionKey: false,
timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' }
});
Book_Schema.index({title:1}); // 索引
var Book = base.mongoose.model('Book', Book_Schema, 'books');// 指定collection名为books
// exports.BookEntity = BookEntity;
module.exports = Book;

3. Controller

在controller目录下增删查改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
var Book = require('../models/Book');
...
// 插入
var insert = {
title:'1234',
catalog: 'String',
sub2: 'String',
img: 'String',
reading: 'String',
online: 'String',
bytime: 'String',
}
var book = new Book(insert);
book.save(function (err, resp) {
if (err) {
console.log("Error:"+ err);
} else {
res.send({"res": resp});
}
});
// 改
var condition = {title:'1234'};
var update_value = {title:'12345'};
Book.update(condition, update_value, function(err, res) {
if (err) {
console.log("Error:"+ err);
} else {
console.log("res:"+ res);
}
})
// 查
Book.findOne({title:'1234'}, function(err, resp) {
if (err) {
res.send('err:'+err);
} else {
console.log(resp);
res.send(resp.createTime.toLocaleString());
}
})
// 删
Book.remove({_id:'5a2d3f618106b82b8a33eb40'}, function (err, resp){
if (err) {
res.send('err:'+err);
} else {
res.send(resp);
}
})