美文网首页
express与mongoose结合最佳实践探索

express与mongoose结合最佳实践探索

作者: JohnYuCN | 来源:发表于2019-11-03 11:49 被阅读0次

    基本布局的建立

    express my-app
    cd my-app
    npm install -S mongoose
    

    一、布局的变动

    /my-app
      - bin
      |    main.js   ##程序的入口
      - models
      |    index.js  ## Schema集中定义
      + routes      ## Express的Router
      mongo.js    ## mongo的模型定义
      app.js        ## express的配置管理
      package.json
      ...
    
    

    二、Schema定义集中

    【/models/index.js】
    
    let BookSchema={name:String,price:Number}
    module.exports={BookSchema}
    

    三、mogoose的模型定义

    【/mongo.js】
    
    const  mongoose=require('mongoose')
    const model=require('./models')
    let Book=mongoose.model("book",model.BookSchema)
    

    四、入口程序

    【/main.js】
    
    const mongoose=require('mongoose')
    const mongo=require('../mongo')
    const app=require('../app')
    const http=require('http')
    
    let mongoUrl='mongodb://localhost:27017/test12'
    let httpPort=3000
    let server=http.createServer(app)
    mongoose.connect(mongoUrl,err=>{
        server.listen(httpPort)
    })
    
    server.on('listening',()=>{
        console.log(`express start at ${server.address().host} :${server.address().port}`)
    })
    server.on('error',(err)=>console.log("express error"))
        mongoose.connection.on('open',function () {
    })
    
    mongoose.connection.on('open',function () {
        console.log(`mongoose connected in ${mongoose.connection.host}:${mongoose.connection.port}`)
    })
    
    mongoose.connection.on('error',function (err) {
        console.log("mongoose connection error")
    })
    

    五、express与mongoose的对接

    【routes/book.js 片段】
    
    var express = require('express');
    var router = express.Router();
    const  mongoose=require('mongoose')
    let Book=mongoose.model('book')
    router.get('/', function(req, res, next) {
      Book.find({},function (err,newBook) {
        res.json(newBook);
      })
    });
    

    相关文章

      网友评论

          本文标题:express与mongoose结合最佳实践探索

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