基本要求
确保您的开发环境已经安装了 Node.js、npm、MySQL 以及 Vue CLI。

步骤 1: 创建 Nuxt.js 项目
使用 create-nuxt-app 创建一个新的 Nuxt.js 项目:

npx create-nuxt-app nuxt-crud-demo

选择所需的配置。一旦项目创建完毕,进入项目文件夹:

cd nuxt-crud-demo

步骤 2: 添加 Express 作为服务器
在项目根目录中创建一个名为 server 的文件夹。在 server 文件夹内创建一个 index.js 文件,用于设置 Express 服务器。

安装 Express:

npm install express

在 server/index.js 中添加基础服务器设置:

const express = require('express');
const app = express();

app.use(express.json());

const PORT = 3001;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

步骤 3: 配置 Sequelize 和 MySQL
安装 Sequelize 和 MySQL2:

npm install sequelize mysql2

在 server 文件夹中创建一个 Sequelize 配置。这涉及配置数据库连接和模型。这里只是一个示例:

// server/models/index.js
const Sequelize = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql'
});

const Model = Sequelize.Model;

class User extends Model {}
User.init({
  username: {
    type: Sequelize.STRING,
    allowNull: false
  },
  // 其他字段...
}, {
  sequelize,
  modelName: 'user'
});

sequelize.sync();

module.exports = {
  User
};

步骤 4: 创建后端 CRUD 路由
在 server/index.js 中添加 CRUD 路由:

const { User } = require('./models');

// 创建用户
app.post('/users', async (req, res) => {
  try {
    const user = await User.create(req.body);
    res.json(user);
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
});

// 获取用户列表
app.get('/users', async (req, res) => {
  const users = await User.findAll();
  res.json(users);
});

// 更新用户
app.put('/users/:id', async (req, res) => {
  try {
    const user = await User.findByPk(req.params.id);
    if (user) {
      await user.update(req.body);
      res.json(user);
    } else {
      res.status(404).json({ error: 'User not found' });
    }
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
});

// 删除用户
app.delete('/users/:id', async (req, res) => {
  try {
    const user = await User.findByPk(req.params.id);
    if (user) {
      await user.destroy();
      res.json({ message: 'User deleted' });
    } else {
      res.status(404).json({ error: 'User not found' });
    }
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
});

步骤 5: 创建前端页面
在 Nuxt.js 项目中创建用于增删改查的前端页面。例如,在 pages/index.vue 中,您可以使用 Axios(如果您在创建项目时选择了它)来与 Express 后端进行交互:

<template>
  <div>
    <!-- 用户界面和逻辑... -->
  </div>
</template>

<script>
export default {
  data() {
    return {
      users: [],
      // 其他数据...
    };
  },
  mounted() {
    this.fetchUsers();
  },
  methods: {
    async fetchUsers() {
      try {
        const response = await this.$axios.get('http://localhost:3001/users');
        this.users = response.data

https://github.com/stupidzhang/nuxtPractice

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐