Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析

2020-06-17 07:11:22易采站长站整理

本文实例讲述了Vue+Node服务器查询Mongo数据库及页面数据传递操作。分享给大家供大家参考,具体如下:

1、利用Mongoose查询MongoDB

通过mongoose依赖可以简捷地操作mondodb数据库,首先安装mongoose:


cnpm install mongoose --save

使用mongoose需要一个模式Schema,它用于定义你从mongodb中查询的每个文档条目的内容,然后通过mongoose.model()生成一个模板model,模板像一个架子,将数据库取到的每个条目中的内容按架子的结构填充,这样就形成了一个便于操作、结构条理的数据对象。通过这个对象就可以访问模板的相关属性,甚至为其定义函数方法。

例如mongodb中的数据库mall中的商品条目如图:

(PHP Storm中有简单的mongo可视化插件。通过搜索mongo plugin安装该插件,之后在phpstorm主菜单的view/Tool Windows中找到mongo explore开启mongo侧边栏工具,并连接到mongo数据库后就能可视化查看其中数据)

针对其定义Schema,生成并导出商品模板goods:


//在服务端server/modules文件夹下新建goods.js文件
const mongoose=require('mongoose');
let Schema=mongoose.Schema;
let productSchema=new Schema({ //通过mongoose的Schema定义模板
"productId":String,
"productName":String,
"salePrice":Number,
"productImage":String
});
//导出模板goods
module.exports=mongoose.model('goods',productSchema);

注意:Schema中字段的名称要与数据库中一致,否则会因为字段不匹配而造成无法操作数据库。例如我在数据库中是productImage,而schema中是productImg,导致插入时丢失字段。

然后通过goods模板执行数据库查询操作,如果有错返回err,否则返回查询结果doc:


goods.find({},(err,doc)=>{callback()});

2、Node服务端查询数据库并返回结果

①、通过Express框架进行数据库连接:


//服务端server/routes/goods.js文件
//引入相关模块
const express=require('express');
const router=express.Router();
const mongoose=require('mongoose');
const goods=require('../modules/goods') //引入goods模板
//连接本地mongodb数据库的mall集合
mongoose.connect('mongodb://localhost:27017/mall');
mongoose.connection.on('connected',()=>{
console.log("mongoDB连接成功");
});
mongoose.connection.on('erroe',()=>{
console.log("mongoDB连接出错");
});
mongoose.connection.on('disconnected',()=>{