node+vue2+express+MongoDB实现接口的查询

写在前面

上一篇写了关于MongoDB以及相关操作工具的,还讲了工欲善其事必先利其器,那么其器已利,也该善其事了。

  • mongoose是什么?跟mongoDB又有什么关系?
    MongoDB是一个对象数据库,是用来存储数据的;Mongoose是封装了MongoDB操作的一个对象模型库,是用来操作这些数据的。
    1 安装mongoose
    cnpm install mongoose
    2 server文件夹下创建models,在models下创建goods.js
var mongoose = require('mongoose')
// schema模型
var Schema = mongoose.Schema
// 定义商品模型
var productSchema = new Schema({
  'productId': String,
  'productName': String,
  'prodcutPrice': Number,
  'prodcutImg': String
})
// 将mongoose中的model的goods模块暴露出来
module.exports = mongoose.model('Good', productSchema)

3 server文件夹下创建routes文件夹,在routes文件夹下创建goods.js

var express = require('express')
var router = express.Router()

// 2.引入mongoose的数据模块
var mongoose = require('mongoose')
var Goods = require('../models/goods')

// 3.连接数据库
mongoose.connect('mongodb://localhost:27017/test')

mongoose.connection.on('connected', () => {
  console.log('数据库连接成功!')
})

mongoose.connection.on('error', () => {
  console.log('数据库连接失败!')
})

mongoose.connection.on('disconnected', () => {
  console.log('数据库连接断开!')
})

/* GET users listing. */
// 4.路由获取
router.get('/', function (req, res, next) {
  // 5.查询mongoDB的goods数据  基于mongoose实现商品列表的查询
  Goods.find({}, function (err, doc) {
    if (err) {
      res.json({
        status: '1',
        msg: err.message
      })
    } else {
      res.json({
        status: '0',
        msg: '',
        result: {
          count: doc.length,
          list: doc
        }
      })
    }
  })
  // res.send('hello,goods');
})

// 6.暴露路由
module.exports = router

注意:这里表示的是连接的哪个数据库
在这里插入图片描述

4修改入口文件app.js

var goodsRouter = require('./routes/goods')
app.use('/goods', goodsRouter)

5 创建数据
https://blog.csdn.net/qq_20074443/article/details/86138267
6 启动MongoDB服务和node项目
MongoDB服务启动
在这里插入图片描述
node项目启动
在这里插入图片描述
访问 http://localhost:8081/goods
在这里插入图片描述

vue项目中的使用

1 启动vue项目之后,由于存在跨域,于是在config中的index.js中配置proxyTable
在这里插入图片描述
注意:端口号的确定是根据入口文件中定义的端口号而决定的
在这里插入图片描述
2 请求数据
在这里插入图片描述
3 获取数据
在这里插入图片描述
4 数据渲染
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20074443/article/details/86155209