vue-cli + express + mongoDB

如何在开发环境下连接mongoDB呢?

1. 在项目目录下新建model文件夹

image.png
model文件下的index.js
var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/blog')
var db = mongoose.connection
//监听数据库连接
db.on('open',(err)=>{
    if(err){
        console.log("数据库连接失败")
    }
    console.log('数据库连接成功')
})

//定义数据结构
var newSchema = new mongoose.Schema({
    title:String,
    id:String,
    content:String
},{
    versionKey: false
})

var userSchema = new mongoose.Schema({
    name: String,
    age:Number,
    password:String
},{
    versionKey: false
})

//定义数据模型
var newsList = mongoose.model("news",newSchema,"newsList")
var userList = mongoose.model("user",userSchema,"userList")

module.exports = {
    newsList:newsList,
    userList:userList
}

2. 在build文件夹下的dev-server.js中引入model中的index.js文件

const model = require('../model')

  • 在提交数据时,需要使用中间件
//引入中间件
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//使用中间件
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

3. 在dev-server.js中写接口

const app = express()

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

app.get('/newsList', function (req, res) {
  var currentPage = req.query.currentPage
  var limitNum = 4
  var skipNum = (currentPage - 1) * limitNum
  newsList.count(function (err, num) {
      var totalPage = Math.ceil(num / limitNum)
      newsList.find({}).limit(limitNum).skip(skipNum).exec(function (err, docs) {
          res.status(200).json({
              data: docs,
              totalPage: totalPage
          })
      })
  })
})

如何打包上线?

1. 使用vue-cli打包

执行:npm run build
生成dist文件夹

2. express生成上线项目

新建上线项目,cmd后台输入: express -e project-online
将打包生成的dist目录复制进project-onlinepublic文件夹中

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容