今日学习总计
在Express项目中使用Mongoose
快速生成express应用
这里我们用express-generator来快速生成express应用(先安装好node、npm、express-generator、mongodb)
$ express mongooseExpress
先看下最终的项目结构图:

配置数据库并连接
新建config文件夹,用来放置数据库配置信息
config/config.js
module.exports = {
mongodb: 'mongodb://localhost:27017/mongoose-test'
}
config/mongoose.js
var mongoose = require('mongoose');
var config = require('./config.js');
module.exports = function() {
var db = mongoose.connect(config.mongodb);
require('../models/user.server.model.js');
return db;
}
全局引入mongoose
在app.js的路由模块前引用刚才创建的mongoose配置信息(8,9两行)
1 var express = require('express');
2 var path = require('path');
3 var favicon = require('serve-favicon');
4 var logger = require('morgan');
5 var cookieParser = require('cookie-parser');
6 var bodyParser = require('body-parser');
7
8 var mongoose = require('./config/mongoose.js');
9 var db = mongoose();
10
11 var index = require('./routes/index');
12 var users = require('./routes/users');
创建Schema和Model
新建models文件夹
/models/user.server.model.js
var mongoose = require('mongoose');
var UserSchema = new mongoose.Schema({
uid: Number,
username: String,
createTime: Date,
lastLogin: Date
});
mongoose.model('User', UserSchema);
编写数据库处理逻辑代码
我们直接在users路由模块中加入数据库存取操作的代码
/routes/users.js
1 var express = require('express');
2 var router = express.Router();
3
4 var mongoose = require('mongoose');
5 var User = mongoose.model('User');
6
7 /* GET users listing. */
8 router.get('/', function(req, res, next) {
9 res.send('respond with a resource');
10 });
11
12 router.get('/test', function(req, res, next) {
13 var user = new User({
14 uid: 1,
15 username: 'nuanfeng'
16 })
17
18 user.save(function(err){
19 if(err) {
20 res.end('Error');
21 return next();
22 }
23
24 User.find({}, function(err, docs) {
25 if(err) {
26 res.end('Error');
27 return next();
28 }
29
30 res.json(docs);
31 })
32 })
33 })
34
35 module.exports = router;
运行node查看效果
$ node bin/www
然后在浏览器中访问:http://localhost:3000/users/test,就能往数据库中存入一条记录,并在当前页面返回它的json数据

浙公网安备 33010602011771号