vue+express+mongodb 实现 增删改查

一、创建一个vue项目

用脚手架vue-cli搭建一个项目,数据请求用axios方式,写几个按钮用来调接口(vue这块不做多解释,不懂的可以先去官网学习vue-cli:https://cli.vuejs.org/zh/guide/cli-service.html   axios:http://www.axios-js.com/

注意点:在用axios调用接口的时候会产生跨域,所以有配置下:在vue项目根目录下打开config文件夹下的index.js文件中proxyTable中加入配置内容

proxyTable: {
‘/api‘:{
target:‘http://localhost:3000‘,
changeOrigin:true,
}
},

这里我服务器开的是3000端口,而vue默认是8080端口

二、express接口

1、新创建一个文件夹,用于放服务端代码,这里文件夹名字一mongodb为例

在根目录下打开命令窗口(默认都安装了node)npm init -y 初始化,然后下载依赖包

express模块用来创建路由
mongoose模块用来创建数据库,连接数据库
body-parser模块用来对post请求的请求体进行解析

npm install express body-parser mongoose --save

2、在根目录下创建app.js文件,用来启动express服务

//app.js文件

//引入刚才定义的hero路由
const hero = require(‘./router/hero‘)
//1.引入express模块
const express = require(‘express‘)

//中间介  解析post ,get 登返回的数据
var bodyParser = require(‘body-parser‘);

//2.创建app对象
const app = express()
app.use(bodyParser());
app.use(‘/api‘,hero)
//定义简单路由
app.use(‘/‘,(req,res) => {
  res.send(‘成功‘)
})
//定义服务启动端口
app.listen(3000,() => {
    console.log(‘服务器开启成功,端口3000‘)
})

在根目录下打开命令窗口输入node app 执行后打印“服务器开启成功,端口号3000”,这代表服务器已开启,浏览器访问 http://localhost:3000/ 页面会显示 :成功

3、创建数据模型

在项目根目录建立一个models文件夹,用来存储数据模型,每个模型都是由一个Schema生产,具体的我们不用太在意,如果有兴趣可自行百度。

models文件夹中创建一个hero.js文件,内容如下

//hero.js文件

//引入mongoose模块
const mongoose = require(‘mongoose‘)

//定义数据模型,可以看到,我们下面创建了一个表,表中的数据有name、age、sex等字段,并且这些字段的数据类型也定义了,最后将model导出即可
const heroSchema = mongoose.Schema({
  name :String,
  age : String,
  sex : String,
  address : String,
  dowhat : String,
  imgArr:[],
  favourite:String,
  explain:String
}, { collection: ‘myhero‘})
//这里mongoose.Schema最好要写上第二个参数,明确指定到数据库中的哪个表取数据,我这里写了myhreo,目的就是为了以后操作数据要去myhreo表中。
// 这里不写第二个参数的话,后面你会遇到坑。

//导出model模块
const Hero = module.exports = mongoose.model(‘hero‘,heroSchema);

4、创建exress增删改查 业务代码

在项目根目录创建一个router文件夹,文件夹中创建一个hero.js文件,内容如下,分别为增删改查、添加图片等路由 ,在逻辑代码中药注意在这里插入了一下内容用来连接mongodb数据库。

// 连接数据库
mongoose.connect("mongodb://localhost:27017/test", { useNewUrlParser: true });
const conn = mongoose.connection;
conn.on("error", () => console.error("连接数据库失败"));
//引入express模块
const express = require("express");
//定义路由级中间件
const router = express.Router();
//引入数据模型模块
const Hero = require("../models/hero");

// mongoose.js
const mongoose = require("mongoose");

// 连接数据库
mongoose.connect("mongodb://localhost:27017/test", { useNewUrlParser: true });
const conn = mongoose.connection;
conn.on("error", () => console.error("连接数据库失败"));

// 查询所有英雄信息路由
router.get("/hero", (req, res) => {
  Hero.find({})
    .sort({ update_at: -1 })
    .then(heros => {

      res.json(heros);
    })
    .catch(err => {

      res.json(err);
    });
});

router.get("/user", (req, res) => {
  res.end("来啦");
});

// 通过ObjectId查询单个英雄信息路由
router.get("/hero/:id", (req, res) => {
  Hero.findById(req.params.id)
    .then(hero => {
      res.json(hero);
    })
    .catch(err => {
      res.json(err);
    });
});

// 添加一个英雄信息路由
router.post("/hero", (req, res) => {
  //使用Hero model上的create方法储存数据

  Hero.create(req.body, (err, hero) => {

    if (err) {
      res.json(err);
    } else {
      console.log(‘1‘);
     res.json(hero);
    }
  });

});

//更新一条英雄信息数据路由
router.put("/hero/:id", (req, res) => {
  Hero.findOneAndUpdate(
    { _id: req.params.id },
    {
      $set: {
        name: req.body.name,
        age: req.body.age,
        sex: req.body.sex,
        address: req.body.address,
        dowhat: req.body.dowhat,
        favourite: req.body.favourite,
        explain: req.body.explain
      }
    },
    {
      new: true
    }
  )
    .then(hero => res.json(hero))
    .catch(err => res.json(err));
});

// 添加图片路由
router.put("/addpic/:id", (req, res) => {
  Hero.findOneAndUpdate(
    { _id: req.params.id },
    {
      $push: {
        imgArr: req.body.url
      }
    },
    {
      new: true
    }
  )
    .then(hero => res.json(hero))
    .catch(err => res.json(err));
});

//删除一条英雄信息路由
router.delete("/hero/:id", (req, res) => {
  console.log(req.params.id);
  Hero.findOneAndRemove({
    _id: req.params.id
  })
    .then(hero => res.send(`${hero.title}删除成功`))
    .catch(err => res.json(err));
});

module.exports = router;

这个文件会在app.js中引入,上面app.js中代码已引入

三、mongodb数据持久化

为了方便我们查询和观看效果,可以先在数据库中插入一条数据

1、下载 mongodb https://www.mongodb.com/download-center/community 具体安装可以自行去百度,这里不做解释

2、下载mongo可视化工具 https://studio3t.com/download/ 数据库客户端,可以方便的操作数据库

3、开启数据库:在安装目录下 执行命令mongod -dbpath "自己的安装目录/data"

4、在安装目录下的lib中执行命令 mongo

show dbs 查看数据库

use test 创建数据库

db.myhero.insert({

//根据创建的数据模型 插入的数据

//myhero是一个集合

})

插入数据后年可以在studio3t中直接查看  。

更多的数据库操作命令可以百度去查,这里不做过多扩展。

四、执行程序

开启数据库=》开启服务器=》开启vue项目

可以在vue页面调用接口操作数据了

===========================================================================

结束   大家有好的见解可以提出来,不懂的地方可以提问,谢谢!

原文地址:https://www.cnblogs.com/styleFeng/p/12638532.html

时间: 2024-10-09 15:02:07

vue+express+mongodb 实现 增删改查的相关文章

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

MongoDB(三)——增删改查

MongoDB作为非关系型数据库,还是传统数据库的增删改查有很大的区别的,这里只是将知识点进行了一下提纲挈领,实际用的时候,我们百度一下详细用法即可.先看大的几个方面: 一,对于里边的插入和删除不再过多赘述,相对来说知识点比较少.先来看一下更新,常用操作还是非常有用的,需要我们根据实际情况灵活运用,这里只是提出了知识点,需要百度出例子来学习使用: 2,查询也是一样,看一下知识点的汇总,其实用几个,还是有规律的,比较容易记录的: 3,看一下固定集合Capped Collection:顾名思义是有着

C# 对MongoDB 进行增删改查的简单操作

C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 1,连接数据库 /// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://127.0.0

vue实战(一):利用vue与ajax实现增删改查

vue实战(一):利用vue与ajax实现增删改查: <%@ page pageEncoding="UTF-8" language="java" %> <%@ include file="../commons/taglib.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.

Java连接MongoDB进行增删改查

1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean; import java.io.Serializable; import java.util.Date; /** * @since 对应于mongodb中的数据库test中的表com * @author think * */ public class Company implements Seri

MongoDB的增删改查 转

MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系.MongoDB文档都是BSON文档,他是一个JSON的二进制形式. MongoDB的文档 MongoDB中文档被存储在集合中.集合是一组有关系索引的文档.集合类似于关系数据库中的表. MongoDB的集合 2.1 方法参考 查询游标方法 名称 说明 cursor.count() 返回游标中的文档的数

MongoDB之增删改查(一)

本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其他关系型数据库一样,通过insert来增加数据到集合中去. db.collectionName.insert(内容) 显示数据库中所有集合: show collections 删 MongoDB中通过remove来删除集合中符合一定条件的文档. remove接受一个参数,作为寻找要删除文档的条件: 当然了,也可以直接删除一整个集合,通过drop方法: db.person.drop() 删除集合然后重建索引比删除集合中所有的文档

Mongodb c#增删改查

写在前面 最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下. Mongodb 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象(document)三个层次组成.MongoDB对于关系型数据库里的表,但是集合中没有列.行和关系概念,这体现了模式自由的特点. 那么在c#如何使用呢?下面看个例子,你会发现上手非常简

Mongodb之增删改查

一 Mongodb 首先下载好这个和上一篇文章下载的Mongodb 关于Mongodb的常识 1 它的默认端口 是27017 2 3 show dbs 查看所有存在磁盘上的数据库 4 show tables 查看当前数据库存在磁盘上的数据表 5 6 use 数据库 创建数据库或切换数据库 7 8 ######使用了不能存在的对象即创建该对象###### 9 10 数据库.表名 创建表 一些基本命令 二 Mongodb数据的增删改查 #insert db.user.insert({"id"