今日学习总计

在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数据

posted @ 2021-10-19 22:58  禁小呆  阅读(35)  评论(0)    收藏  举报