当前位置: 首页 > news >正文

快速上手vue3+js+Node.js

安装Navicat Premium

Navicat Premium

创建一个空的文件夹(用于配置node)

生成pakeage.json文件

npm init -y

操作mysql

npm i mysql@2.18.1

安装express搭建web服务器

npm i express@4.17.1

安装cors解决跨域问题

npm i cors@2.8.5

创建app.js

const express = require('express');
const app = express();
const cors = require('cors');
const bodyParser = require('body-parser');app.use(cors());
app.use(bodyParser.json());
// 设置静态资源目录
app.use('/static', express.static('E://各类资料//毕业设计'));// 引入路由文件
const userRouter = require('./user/index');
const homeRouter = require('./home/home');// 使用路由
app.use('/api', userRouter);
app.use('/api/home', homeRouter);app.listen(8080, () => {console.log("服务器启动 http://127.0.0.1:8080");
});

配置连接mysql--db文件下创建index.js

const mysql = require("mysql");const db = mysql.createConnection({host: '127.0.0.1',user: 'root',password: 'xxxxxx',// 个人数据库密码database: 'xxxxxx'// 操作的数据库名
});db.connect((err) => {if (err) {console.error('Error connecting to the database:', err.stack);return;}console.log('Connected to the database.');
});module.exports = db;

user文件夹下创建index.js

const express = require("express");
const router = express.Router();
const db = require("../db/index");
const md5 = require("md5");
const multer = require("multer");
const path = require("path");// 获取用户列表
router.get("/getUserList", (req, res) => {const sql = "SELECT * FROM account_info";db.query(sql,(err, result) => {if (err) { err.message }if (result.length < 1) {res.send({ status: 1, message: "获取用户列表失败!", code: 400 });}res.send({ status: 0, data: result, message: "获取用户列表成功", code: 200 });});
});module.exports = router;

注意:其他的crud操作根据实际的需求去操作sql语句来具体实现 

创建一个vue的脚手架

在文件夹api下创建request.js文件用于封装axios来发送网络请求

import axios from "axios";// 对 axios 进行二次封装
const requests = axios.create({timeout: 5000,headers: {"Content-Type": "application/json"}
});// 请求拦截器
requests.interceptors.request.use((config) => {return config;
}, (error) => {return Promise.reject(error);
});// 响应拦截器
requests.interceptors.response.use((response) => {return response.data;
}, (error) => {return Promise.reject(error);
});// 获取
const listUserData = (data) => requests({ url: "http://127.0.0.1:8080/api/getUserList", method: "get", data });export { listUserData };

node接口效果图

postman

脚手架调用接口返回

 UI交互简单实现

http://www.lryc.cn/news/479419.html

相关文章:

  • 06 网络编程基础
  • Python 的 FastApi 如何在request 重复取request.body()
  • qt QFontDialog详解
  • AI时代,通才可能会占据更有利的地位
  • qt QHeaderView详解
  • 探索PickleDB:Python中的轻量级数据存储利器
  • yocto下编译perf失败的解决方法
  • 丹摩征文活动|详解 DAMODEL(丹摩智算)平台:为 AI 开发者量身打造的智算云服务
  • ORACLE _11G_R2_ASM 常用命令
  • 掌握Rust模式匹配:从基础语法到实际应用
  • HFSS 3D Layout中Design setting各个选项的解释
  • 线性表之链表详解
  • C/C++使用AddressSanitizer检测内存错误
  • 【EI和Scopus检索】国际人工智能创新研讨会(IS-AII 2025)
  • 在OceanBase 中,实现自增列的4种方法
  • LWE算法分类及基本加解密算法示例
  • 【论文阅读】Learning dynamic alignment via meta-filter for few-shot learning
  • 蓝牙 SPP 协议详解及 Android 实现
  • 系统学习领域驱动设计-感悟-高尚名词篇
  • 人工智能(AI)和机器学习(ML)技术学习流程
  • <Project-20 YT-DLP> 给视频网站下载工具 yt-dlp/yt-dlp 加个页面 python web
  • 【Android】Gradle 7.0+ 渠道打包配置
  • Web应用性能测试工具 - httpstat
  • MySQL 【流程控制】函数
  • python 天气数据可视化
  • 【HarmonyOS Next】数据本地存储:@ohos.data.preferences
  • 使用BaGet快速搭建nuget服务
  • 基于Zynq FPGA的雷龙SD NAND存储芯片性能测试
  • 【功能介绍】信创终端系统上各WPS版本的授权差异
  • Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询