【前端】入门指南:Vue中使用Node.js进行数据库CRUD操作的详细步骤

💥 欢迎来到我的博客!很高兴能在这里与您相遇!

💥 期待与您一起探索AI、共同成长。✨ 立即订阅本专栏,加入我们的旅程,共同发现更多精彩!🌟

在开始之前,我们先来看看为什么选择Vue.js和Node.js这对组合。Vue.js是一款轻量级的前端框架,具有响应式的数据绑定和组件化的开发方式,适合构建用户界面。而Node.js则是一个基于Chrome V8引擎的JavaScript运行环境,能够让你在服务器端使用JavaScript。两者结合,可以实现前后端的无缝对接,提升开发效率。

文章目录

1.1 Vue.js的优势

  • 易于上手:Vue.js的学习曲线相对平缓,适合新手。
  • 组件化开发:可以将UI拆分成独立的组件,便于管理和复用。
  • 强大的生态系统:丰富的插件和工具支持,能够快速构建复杂的应用。

1.2 Node.js的优势

  • 高性能:基于事件驱动的非阻塞I/O模型,适合处理高并发请求。
  • 统一的语言:前后端都使用JavaScript,降低了学习成本。
  • 丰富的模块:NPM(Node Package Manager)提供了大量的第三方模块,方便开发。

二、环境准备

在开始之前,我们需要确保你的开发环境已经准备好。以下是你需要安装的工具:

  1. Node.js :可以通过命令node -v来检查版本。
  2. Vue CLI :可以通过命令npm install -g @vue/cli来安装。
  3. 数据库:我这边使用MongoDB作为示例数据库

三、创建Vue项目

我们需要创建一个新的Vue项目。打开终端,输入以下命令:

bash 复制代码
vue create my-vue-app

根据提示选择默认配置,等待项目创建完成后,进入项目目录:

bash 复制代码
cd my-vue-app

四、搭建Node.js后端

接下来,我们需要在项目中搭建Node.js后端。我们将在项目根目录下创建一个新的文件夹,命名为server,并在其中初始化一个新的Node.js项目。

bash 复制代码
mkdir server
cd server
npm init -y

安装必要的依赖:

bash 复制代码
npm install express mongoose cors body-parser
  • express:用于创建服务器。
  • mongoose:用于与MongoDB进行交互。
  • cors:用于处理跨域请求。
  • body-parser:用于解析请求体。

4.1 创建服务器

server文件夹中,创建一个名为index.js的文件,并添加以下代码:

javascript 复制代码
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const bodyParser = require('body-parser');

const app = express();
const PORT = process.env.PORT || 5000;

// Middleware
app.use(cors());
app.use(bodyParser.json());

// MongoDB连接
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('MongoDB connected'))
    .catch(err => console.log(err));

// 启动服务器
app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

4.2 创建数据模型

server文件夹中,创建一个名为models的文件夹,并在其中创建一个名为Item.js的文件,定义数据模型:

javascript 复制代码
const mongoose = require('mongoose');

const ItemSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    quantity: {
        type: Number,
        required: true
    }
});

module.exports = mongoose.model('Item', ItemSchema);

4.3 创建CRUD接口

index.js中添加CRUD操作的接口:

javascript 复制代码
const Item = require('./models/Item');

// 创建新项目
app.post('/api/items', async (req, res) => {
    const newItem = new Item(req.body);
    try {
        const savedItem = await newItem.save();
        res.status(201).json(savedItem);
    } catch (err) {
        res.status(500).json(err);
    }
});

// 获取所有项目
app.get('/api/items', async (req, res) => {
    try {
        const items = await Item.find();
        res.status(200).json(items);
    } catch (err) {
        res.status(500).json(err);
    }
});

// 更新项目
app.put('/api/items/:id', async (req, res) => {
    try {
        const updatedItem = await Item.findByIdAndUpdate(req.params.id, req.body, { new: true });
        res.status(200).json(updatedItem);
    } catch (err) {
        res.status(500).json(err);
    }
});

// 删除项目
app.delete('/api/items/:id', async (req, res) => {
    try {
        await Item.findByIdAndDelete(req.params.id);
        res.status(200).json('Item deleted');
    } catch (err) {
        res.status(500).json(err);
    }
});

五、在Vue中调用API

现在我们已经搭建好了Node.js后端,接下来需要在Vue前端中调用这些API。打开src文件夹中的App.vue文件,添加以下代码:

html 复制代码
<template>
  <div id="app">
    <h1>Item List</h1>
    <input v-model="newItem.name" placeholder="Item Name" />
    <input v-model="newItem.quantity" type="number" placeholder="Quantity" />
    <button @click="addItem">Add Item</button>
    <ul>
      <li v-for="item in items" :key="item._id">
        {{ item.name }} - {{ item.quantity }}
        <button @click="deleteItem(item._id)">Delete</button>
      </li>
    </ul>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      items: [],
      newItem: {
        name: '',
        quantity: 0
      }
    };
  },
  methods: {
    async fetchItems() {
      const response = await axios.get('http://localhost:5000/api/items');
      this.items = response.data;
    },
    async addItem() {
      await axios.post('http://localhost:5000/api/items', this.newItem);
      this.newItem.name = '';
      this.newItem.quantity = 0;
      this.fetchItems();
    },
    async deleteItem(id) {
      await axios.delete(`http://localhost:5000/api/items/${id}`);
      this.fetchItems();
    }
  },
  mounted() {
    this.fetchItems();
  }
};
</script>

<style>
/* Add your styles here */
</style>

六、运行项目

现在一切准备就绪,我们可以启动Node.js服务器和Vue项目。首先,在server文件夹中启动Node.js服务器:

bash 复制代码
node index.js

然后,在Vue项目根目录下启动Vue开发服务器:

bash 复制代码
npm run serve

打开浏览器,访问http://localhost:8080,你将看到一个简单的界面,可以添加、查看和删除项目。

七、总结

希望这篇文章能帮助你更好地理解如何在Vue中使用Node.js进行数据库操作。如果你有任何问题或建议,欢迎在评论区留言!让我们一起探索更多的开发技巧吧!🚀

相关文章

【OpenAI】(一)获取OpenAI API Key的多种方式全攻略:从入门到精通,再到详解教程!!

【VScode】(二)VSCode中的智能AI-GPT编程利器,全面揭秘CodeMoss & ChatGPT中文版

【CodeMoss】(三)集成13种AI大模型(GPT4、o1等)、支持Open API调用、自定义助手、文件上传等强大功能,助您提升工作效率! >>> - CodeMoss & ChatGPT-AI中文版

相关推荐
哟哟耶耶6 分钟前
css-设置元素的溢出行为为可见overflow: visible;
前端·css
sunly_9 分钟前
CSS:跑马灯
前端·css
2301_8187320617 分钟前
用layui表单,前端页面的样式正常显示,但是表格内无数据显示(数据库连接和获取数据无问题)——已经解决
java·前端·javascript·前端框架·layui·intellij idea
yqcoder18 分钟前
npm link 作用
前端·npm·node.js
林涧泣23 分钟前
【Uniapp-Vue3】页面和路由API-navigateTo及页面栈getCurrentPages
前端·vue.js·uni-app
Komorebi゛26 分钟前
【uniapp】获取上传视频的md5,适用于APP和H5
前端·javascript·uni-app
林涧泣31 分钟前
【Uniapp-Vue3】动态设置页面导航条的样式
前端·javascript·uni-app
杰九1 小时前
【全栈】SprintBoot+vue3迷你商城(10)
开发语言·前端·javascript·vue.js·spring boot
Hopebearer_1 小时前
入门 Canvas:Web 绘图的强大工具
前端·javascript·es6·canva可画
ILUUSION_S1 小时前
Vue平台开发三——项目管理页面
javascript·vue.js