写在前面
上一篇写了关于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 数据渲染