美文网首页node服务端
koa如何连接MongoDB

koa如何连接MongoDB

作者: 夏夏夏夏顿天 | 来源:发表于2018-11-16 22:16 被阅读28次

    这个方法,node,express,koa连接MongoDB都是一样的方法,我们利用mongoose模块来连接

    注意我的版本

    这是我的目录


    image.png

    我的安装的依赖版本:

    "dependencies": {
       "koa": "^2.6.2",
       "mongoose": "^5.3.12",
     }`
    

    1.连接MongoDB

    // db/db.js
    const mongoose = require('mongoose')
    
    const DB_URL = 'mongodb://localhost:27017/local'
    
    mongoose.connect(DB_URL)
    
    mongoose.connection.on('connected',function() {
       console.log('Mongoose connection open to '+DB_URL);
    });
    /**
    * 连接异常 error 数据库连接错误
    */
    mongoose.connection.on('error',function(err) {
      console.log('Mongoose connection error: '+ err);
    });
    /**
    * 连接断开 disconnected 连接异常断开
    */
    mongoose.connection.on('disconnected',function() {
      console.log('Mongoose connection disconnected');
    });
    
    module.exports = mongoose
    

    2.设置需要操作的集合

    // db/index.js
    const mongoose = require('./db')
    const Schema = mongoose.Schema;
    
    const ceshiSchema = new Schema({
      title: String,
      body: String,
      date: Date
    });
    
    const MyModel = mongoose.model('ceshi', ceshiSchema);
    
    
    class Mongodb {
      constructor () {
    
      }
    // 查询
      query () {
         return new Promise((resolve, reject) => {
           MyModel.find({}, (err, res) => {
             if(err) {
               reject(err)
             }
             resolve(res)
           })
         })
      }
    // 保存
      save (obj) {
         const m = new MyModel(obj)
         return new Promise((resolve, reject)=> {
           m.save((err, res) => {
             if (err) {
               reject(err)
             }
             resolve(res)
             console.log(res)
           })
         })
         
      }
    }
    module.exports = new Mongodb()
    
    

    这里就简单举例了查询和保存方法,还是其他方法,可以具体去看文档

    3.设置服务器

    // index.js
    const Koa = require('koa')
    const config = require('./config/default')
    const ModelDb = require('./db')
    
    const app =  new Koa()
    
    
    
    app.use(async (ctx) => {
         let data = await ModelDb.query()
        ctx.body = data
        
    })
    
    
    app.listen(config.port)
    
    console.log(`listening on port ${config.port}`)
    

    4.启动服务器

    打开浏览器,就可以看的查询出来的结果

    注意:前提在ceshi结合要有文档,也就是要有数据

    image.png

    相关文章

      网友评论

        本文标题:koa如何连接MongoDB

        本文链接:https://www.haomeiwen.com/subject/xzjkfqtx.html