博客
关于我
node.js+react写的一个登录注册 demo测试
阅读量:795 次
发布时间:2023-02-16

本文共 3328 字,大约阅读时间需要 11 分钟。

node.js + React 写的一个登录注册 DEMO 测试

目录结构

  • 前端:使用 create-react-app 脚手架搭建
  • 后端:使用 express-generator 搭建
  • 跨域问题:后端安装 cors 包
  • API 调用规范:
    • POST、PUT 请求参数放在 body 中
    • GET、DELETE 请求参数放在 query 中
  • 注意事项

    • 确保前端和后端运行在同一网络环境下
    • 后端数据库连接信息需修改为实际数据库配置
    • 用户注册时 name 字段需加上单引号
    • 后端 API 路由需根据实际项目路径调整

    前端代码示例

    // src/api/index.jsimport axios from 'axios';const base = {  baseUrl: 'http://localhost:3001',  register: '/users/register',  login: '/users/login',  updata: '/users/updata',  del: '/users/del',  allUser: '/users/allUser'};const api = {  register(params) {    return axios({      method: 'POST',      url: base.baseUrl + base.register,      data: params    });  },  login(params) {    return axios({      method: 'POST',      url: base.baseUrl + base.login,      data: params    });  },  updata(params) {    return axios({      method: 'PUT',      url: base.baseUrl + base.updata,      data: params    });  },  del(params) {    return axios({      method: 'DELETE',      url: base.baseUrl + base.del,      params: params    });  },  allUser(params) {    return axios({      method: 'GET',      url: base.baseUrl + base.allUser,      params: params    });  }};export default api;

    后端代码示例

    const express = require('express');const router = express.Router();const db = require('./utils/db');router.get('/', (req, res) => {  res.send('欢迎访问我们的登录注册系统');});// 用户注册路由router.post('/register', (req, res) => {  const { name, pwd } = req.body;  const sql = `SELECT * FROM login WHERE name = '${name}'`;  db.query(sql, (error, data) => {    if (error) return res.status(500).send('数据库错误');    if (data.length > 0) {      return res.send({ msg: '用户名已存在' });    }    const insertSql = `INSERT INTO login (name, pwd) VALUES('${name}', '${pwd}')`;    db.query(insertSql, (error, data) => {      if (error) return res.status(500).send('插入失败');      return res.send({ msg: '注册成功,请登录' });    });  });});// 用户登录路由router.post('/login', (req, res) => {  const { name, pwd } = req.body;  const sql = `SELECT * FROM login WHERE name = '${name}' AND pwd = '${pwd}'`;  db.query(sql, (error, data) => {    if (error) return res.status(500).send('登录失败');    if (data.length > 0) {      return res.send({ msg: '登录成功', storage: name });    }    return res.send({ msg: '账号或密码错误' });  });});// 用户信息修改路由router.put('/updata', (req, res) => {  const { name, pwd } = req.body;  const sql = `UPDATE login SET pwd = '${pwd}' WHERE name = '${name}'`;  db.query(sql, (error, data) => {    if (error) return res.status(500).send('修改失败');    if (data.affectedRows > 0) {      return res.send({ msg: '修改成功,请重新登录' });    }    return res.send({ msg: '修改失败' });  });});// 用户删除路由router.delete('/del', (req, res) => {  const { delName } = req.query;  const sql = `DELETE FROM login WHERE name = '${delName}'`;  db.query(sql, (error, data) => {    if (error) return res.status(500).send('删除失败');    if (data.affectedRows > 0) {      return res.send({ msg: '用户已成功删除' });    }    return res.send({ msg: '删除失败' });  });});// 查看所有用户路由router.get('/allUser', (req, res) => {  const sql = `SELECT * FROM login`;  db.query(sql, (error, data) => {    if (error) return res.status(500).send('查询失败');    if (data.length > 0) {      return res.send(data);    }    return res.send({ msg: 0 });  });});module.exports = router;

    源码下载建议

    根据上述代码示例,建议将前端和后端代码分别下载至项目根目录,进行如下步骤:

  • 安装所需依赖包
  • 修改数据库配置
  • 根据实际路径调整 API 路由
  • 运行项目测试
  • 如有疑问,可在项目 issue 中反馈。

    转载地址:http://ppjfk.baihongyu.com/

    你可能感兴趣的文章
    nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置https(一)—— 自签名证书
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx 配置解析:从基础到高级应用指南
    查看>>
    nginx+Tomcat性能监控
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
    查看>>