nodejs使用express框架启动服务操作mysql数据库

描述:

首先在本地搭建mysql数据库,配置:host: ‘192.168.3.249’,user: ‘mkx’,password: ‘123456’,database: ‘gg’.测试连接正常.使用express写两个接口,
1.查询所有学生的接口,使用的get请求,无参数.
2.插入一条学生信息,使用post请求,body是一个json的学生信息{name:“xxx”,age:12,score:55,s_id:1001},注:s_id是课程代号.
上代码:
数据库代码 database.js

const mysql = require('mysql2');const connection = mysql.createConnection({host: '192.168.3.249',user: 'mkx',password: '123456',database: 'gg'
});const insertData = (name, age, score, s_id) => {return new Promise((resolve, reject) => {const query = `INSERT INTO student (name, age, score, s_id) VALUES (?, ?, ?, ?)`;const values = [name, age, score, s_id];connection.query(query, values, (error, results, fields) => {if (error) {console.error('Error occurred while inserting data:', error);reject({ data: error })} else {console.log('Data inserted successfully!');resolve({ data: results });}});})
};const getAllStudents = () => {return new Promise((resolve, reject) => {const query = `SELECT * FROM student`;connection.query(query, (error, results, fields) => {if (error) {console.error('Error occurred while fetching data:', error);reject({ data: error })} else {console.log('All students information:');resolve({ data: results });}});})
};module.exports = { insertData, getAllStudents }

服务器代码: index.js

const express = require('express');
const database = require('./database');const app = express();
const port = 3000;app.use(express.json());app.use((req, res, next) => {res.setHeader('Access-Control-Allow-Origin', '*');res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');if (req.method === 'OPTIONS') {res.sendStatus(200);} else {next();}
});app.post('/students', (req, res) => {const { name, age, score, s_id } = req.body;database.insertData(name, age, score, s_id).then(() => {res.status(200).json({ message: 'Data inserted successfully!' });}).catch(error => {res.status(500).json({ error: 'Error occurred while inserting data.' });});
});app.get('/students', (req, res) => {database.getAllStudents().then(results => {res.status(200).json(results);}).catch(error => {res.status(500).json({ error: 'Error occurred while fetching data.' });});
});app.listen(port, () => {console.log(`Server is running on port ${port}`);
});

需要安装的依赖:

 "dependencies": {"express": "^4.18.2","mysql2": "^3.6.5"}

数据库的表是个student 字段分别是 (注意:你需要自己的管理员账号,或者直接使用root账号)
id (自增的)
name 字符串
age int型的
score int型的
s_id 字符串

postman 截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

土壤科学灌溉CG-36 土壤水势传感器

土壤科学灌溉CG-36 土壤水势传感器产品概述 土壤水势传感器可以很方便地插入到土壤剖面坑中,在其周围包裹上湿土即可。测定和记录非常简单。免维护、无需校准即可测量较大范围的土壤水势;无需灌水,大量程使得它成为测量自然系统水势的理想传…

十个Vue3实用但是冷门的API

文章目录 一、前言二、readonly三、shallowRef四、shallowReactive五、toRef & toRefs5.1、 toRef5.2、toRefs 六、toRaw & markRaw & unref6.1、toRaw6.2、markRaw6.3、unref 七、effectScope & onScopeDispose7.1、收集副作用7.2、全局状态管理 八、provide …

Docker - Android源码编译与烧写

创建源代码 并挂载到win目录 docker run -v /mnt/f/android8.0:/data/android8.0 -it --name android8.0 49a981f2b85f /bin/bash 使用 docker update 命令动态调整内存限制: 重新运行一个容器 docker run -m 512m my_container 修改运行中容器 显示运行中容器 d…

【剑指offer|图解|二分查找】点名 + 统计目标成绩的出现次数

🌈个人主页:聆风吟 🔥系列专栏:剑指offer每日一练 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️点名1.1 题目1.2 示例1.3 限制1.4 解题思路一c代码 1.5 解题思路二c代码 二. ⛳️统计目标成绩…

开发信的基本要点有哪些?如何撰写开发信?

开发信的关键要素是什么?外贸开发信的写作技巧方法? 开发信是一种至关重要的沟通工具,无论是初创企业还是已经建立的公司,开发信都是与潜在客户、合作伙伴或投资者建立联系的关键步骤。蜂邮将讨论开发信的基本要点,以…

(NeRF学习)3D Gaussian Splatting Instant-NGP环境配置

学习参考: 3D gaussian splatting 安装步骤拆解23.9月3D Gaussian Splatting入门指南【五分钟学会渲染自己的NeRF模型,有手就行!】 三维重建instant-ngp环境部署与colmap、ffmpeg的脚本参数使用 一、3D Gaussian Splatting (一&…

快看!AI竟然可以这样……

自从ChatGPT诞生之后,还有谁不知道AI的名号吗?我相信只有极少部分人吧。人工智能技术在21世纪粉墨登场,拉开了信息化时代的蓝图,被广泛应用于各个产业,来实现产业赋能,推动了经济社会的快速发展。 5G使用还…

【数据结构】什么是堆?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 堆的概念及结构 堆的定义如下: n个元素的序列{k1,k2,...,kn}当且仅当满足以下关系时,称之为堆. 或 把这个序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个…

基于springBoot + Vue电影售票系统分前后台【完整源码+数据库】

一、项目简介 本项目是一套基于springBoot Vue的电影售票系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,确…

<蓝桥杯软件赛>零基础备赛20周--第10周--二分

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

门窗企业网站建设作用是什么

门窗作为市场重要的组合部分,其应用广泛使得众多商家入局经营,无论大型建筑还是家庭应用,都有较高需求度,尤其对品牌商来说,无论直售还是加盟都可以获得不菲效益。 但对门窗企业来说,也需要解决几个痛点&a…

读写分离如何在业务中落地?

本文我们来探讨读写分离如何在业务中落地。 读写分离是业务开发中常用的技术手段,在面试中也是热点问题,今天我们要讲的是在什么业务场景下需要读写分离,读写分离实现的机制,以及实际生产中应用读写分离要注意的问题。 什么时候…

深入解析Spring Boot集成MyBatis的多种方式

文章目录 1. 引言2. 传统的XML配置方式2.1 引入依赖2.2 配置数据源和MyBatis2.3 编写Mapper接口和XML映射文件2.4 使用Mapper 3. 注解配置方式3.1 引入依赖3.2 配置数据源和MyBatis3.3 编写Mapper接口3.4 使用Mapper 4. MyBatis动态SQL4.1 使用XML配置方式4.2 使用注解配置方式…

Salesforce×阿里云,影响几何?

实际上,从这个视角来看,Salesforce和阿里云的合作也恰在成为着这个市场的一个新催化剂。“期待Salesforce能给中国市场带来一些新的增量,包括对合作伙伴的态度,对产品的态度等等。”一位CRM相关人士告诉我们。 那么,阿…

slurm 23.11.0集群 debian 11.5 安装

slurm 23.11.0集群 debian 11.5 安装 用途 Slurm(Simple Linux Utility for Resource Management, http://slurm.schedmd.com/ )是开源的、具有容错性和高度可扩展的Linux集群超级计算系统资源管理和作业调度系统。超级计算系统可利用Slurm对资源和作业进行管理&a…

【Jmeter】Jmeter基础4-Jmeter元件介绍之监听器

2.4、监听器 监听器主要用于收集、统计、查看和分析结果。 2.4.1、察看结果树 作用:查看取样器请求和响应结果,包括消息头,请求的数据,响应的数据等。一般在调试时才用,在实际运行压测时建议禁用,因为大量…

【NSX-T】6. 搭建NSX-T环境 —— 配置 Segment 网段

目录 6. 配置 SegmentLab 说明6.1 创建 Segment(1)创建 Web-Segment(2)创建 App-Segment 和 DB-SegmentApp-SegmentDB-Segment 6.2 验证 Segment(1)在 NSX Manager中查看(2)在vSpher…

前端走向未来:真相还是焦虑的贩卖?

目录 一、为什么会出现“前端已死”的言论 二、你如何看待“前端已死” 三、前端技术的未来发展趋势 四、前端人,该如何打好这场职位突围战? 我的其他博客 一、为什么会出现“前端已死”的言论 近来,IT圈内流传着“Java 已死、前端已凉”…

医院污水处理设备远程监控超标报警解决方案

行业背景 近年来,我国医疗机构建设得到了巨大的发展。根据《2022年我国卫生健康事业发展统计公报》,2022年末,全国医疗卫生机构总数达1032918个。截至2022年10月,根据全国排污许可证管理信息平台,共有 13316家医院核发…

修改Docker0和容器的地址

修改Docker0和容器的地址 1. 需求 默认服务器安装完Docker-ce后会给docker0分配172.17.0.1/16地址. 公司新接入一个网段正好与172.17.0.1/16冲突,此时访问这台服务器的容器时就会发生网络不可达. 2. 解决方法 修改/etc/docker/daemon.json 加入一个自定义网段 vim /etc/d…