返回

手把手教你实现Vue3+TS+NodeJS后台管理系统(七)

前端

如何构建强大的 Vue3 + TypeScript + Node.js 后台管理系统:用户管理

在构建健壮的后端系统时,用户管理是一个至关重要的方面。本文将深入探讨如何使用 Vue3、TypeScript 和 Node.js 构建一个用户管理模块,包括获取分页用户列表和修改用户信息。

获取用户分页列表

分页是处理大量数据时的常见技术。以下是如何实现分页用户列表:

后端(Node.js):

app.get('/api/user/list', async (req, res) => {
  const { page, size } = req.query;
  const users = await User.findAndCountAll({
    offset: (page - 1) * size,
    limit: size
  });
  res.json({
    code: 200,
    data: users
  });
});

前端(Vue3 + TypeScript):

import axios from 'axios';

export default {
  data() {
    return {
      userList: []
    };
  },
  created() {
    this.getUserList();
  },
  methods: {
    getUserList() {
      axios.get('/api/user/list', {
        params: {
          page: 1,
          size: 10
        }
      }).then(res => {
        this.userList = res.data.data;
      });
    }
  }
};

修改用户

修改用户信息是用户管理中的另一个关键功能:

后端(Node.js):

app.post('/api/user/update', async (req, res) => {
  const { id, username, password, email } = req.body;
  const user = await User.findByPk(id);
  if (user) {
    user.username = username;
    user.password = password;
    user.email = email;
    await user.save();
    res.json({
      code: 200,
      data: user
    });
  } else {
    res.json({
      code: 404,
      message: '用户不存在'
    });
  }
});

前端(Vue3 + TypeScript):

import axios from 'axios';

export default {
  data() {
    return {
      user: {}
    };
  },
  created() {
    this.getUser();
  },
  methods: {
    getUser() {
      axios.get('/api/user/info', {
        params: {
          id: this.$route.params.id
        }
      }).then(res => {
        this.user = res.data.data;
      });
    },
    updateUser() {
      axios.post('/api/user/update', {
        id: this.user.id,
        username: this.user.username,
        password: this.user.password,
        email: this.user.email
      }).then(res => {
        if (res.data.code === 200) {
          this.$message.success('修改成功');
          this.$router.push('/user/list');
        } else {
          this.$message.error(res.data.message);
        }
      });
    }
  }
};

常见问题解答

1. 如何设置分页大小?

分页大小可以通过 size 查询参数进行配置,例如 /api/user/list?size=20

2. 如何处理不存在的用户?

后端接口应返回 404 状态代码和错误消息,前端应相应地处理。

3. 修改密码时如何确保安全性?

使用哈希函数对密码进行加密,避免明文存储。

4. 如何验证用户输入?

在前端使用表单验证或数据验证库,在后端使用数据模型验证。

5. 如何优化用户列表加载性能?

使用缓存或懒加载来优化大型用户列表的加载时间。

结论

本文介绍了如何在 Vue3 + TypeScript + Node.js 后台管理系统中实现用户管理功能。通过遵循本文中的步骤,您可以构建一个强大的用户管理模块,有效地管理用户数据。请随时发表评论或问题,我们将尽力帮助您。