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

使用express创建服务器保存数据到mysql

创建数据库和表结构

CREATE DATABASE collect;

USE collect;

CREATE TABLE `info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_date` bigint(20) DEFAULT NULL COMMENT '时间',
  `type` varchar(20) DEFAULT NULL COMMENT '数据分类',
  `text_value` text COMMENT '内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4

创建前端项目

mkdir node-mysql-api
cd node-mysql-api
npm init -y
npm install express mysql cors

新建server.js文件,保存以下内容

const express = require('express');
const mysql = require('mysql');
const cors = require('cors');
 
const app = express();
const port = 3000;

// 使用中间件解析JSON请求体
app.use(express.json());
 
// 使用CORS中间件
app.use(cors());

// 创建MySQL连接
const db = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',    // 替换为你的数据库用户名
  password: '12345',// 替换为你的数据库密码
  database: 'collect'
});

// 连接到数据库
db.connect((err) => {
  if (err) {
    console.error('Error connecting to the database:', err);
    return;
  }
  console.log('Connected to the database');
});

// 定义saveInfo接口
app.post('/saveInfo', (req, res) => {
  const { createDate, type, textValue } = req.body;
  if (!createDate || !type || !textValue) {
    return res.status(400).send('All fields are required');
  }

  const sql = 'INSERT INTO info (create_date, type, text_value) VALUES (?, ?, ?)';
  const values = [createDate, type, textValue];

  db.query(sql, values, (err, results) => {
    if (err) {
      console.error('Error inserting data:', err);
      return res.status(500).send('Server error');
    }
    res.status(201).send(`Info saved with ID: ${results.insertId}`);
  });
});
// 方便测试用
app.get('/',(req,res)=>{
    res.send('<h1>hello world</h1>')
})

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

启动服务器

node server.js

在浏览器中打开:http://localhost:3000,可以看到如下图所示,即表示成功
在这里插入图片描述
在该页面点击鼠标右键-检查,切换到console面板,输入以下代码发起测试请求

fetch('/saveInfo', {
    method: 'post',
    body: JSON.stringify({
        createDate: 1741318847,
        type: 'test',
        textValue: '这里是测试的内容'
    }),
    headers: {
        'Content-Type': 'application/json'
    }
}).then(res => res.text()).then(txt => console.log(txt))

控制台打印出如下内容,且数据库中出现新提交的测试数据即可
Info saved with ID: 1

在这里插入图片描述

http://www.dtcms.com/a/55252.html

相关文章:

  • linux安装nginx
  • 【前端基础】Day 10 CSS3-2D3D
  • Visual Studio Code for SAP (SAP PRESS) (Leon Hassan)
  • Vue中常见动画执行详解
  • 数据库高级面试题
  • 第六课:数据库集成:MongoDB与Mongoose技术应用
  • javaweb:Maven、SpringBoot快速入门、HTTP协议
  • OpenCV视频解码性能优化十连击(实测帧率提升300%)
  • Java数据结构:解构排序算法的艺术与科学(一)
  • 光通信产业链分析
  • 第五课:Express框架与RESTful API设计:技术实践与探索
  • 动物摄像头监测识别AI技术结合了摄像头监测与人工智能识别(新产品)
  • 机动车授权签字人考试题库及答案
  • 青少年编程与数学 02-010 C++程序设计基础 30课题、操作符重载
  • 深度学习模型组件之优化器--动量优化方法(带动量的 SGD 与 Nesterov 加速梯度)
  • 自律 linux 第 36 天
  • 提升精力的高效方法指南
  • 基于Django的协同过滤算法养老新闻推荐系统的设计与实现
  • ai 提示词技巧
  • 深入理解 C 语言函数的定义
  • Debian的initrd.img文件
  • 服务器python项目部署
  • 视觉 Clutter
  • 稳定性保障-前端
  • Python机器学习小项目实战:随机森林算法实现信用卡欺诈检测
  • 【漫话机器学习系列】123.感知机学习(Perceptron Learning)
  • InternalError: too much recursion
  • 复合机器人:重新定义生产流程的核心引擎
  • 【leetcode hot 100 160】相交链表
  • STM32时钟系统