❤Nodejs 第六章(操作本地数据库前置知识优化)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【4月更文挑战第6天】本文介绍了Node.js操作本地数据库的前置配置和优化,包括处理接口跨域的CORS中间件,以及解析请求数据的body-parser、cookie-parser和multer。还讲解了与MySQL数据库交互的两种方式:`createPool`(适用于高并发,通过连接池管理连接)和`createConnection`(适用于低负载)。

❤Nodejs 第六章(操作本地数据库前置知识优化)

本文主要是讲一些前置知识、配置和优化处理

配置和优化处理

1、cors (处理接口跨域)

下载cors,用于处理接口跨域问题

yarn add cors //安装cors
import cors from 'cors' //引入
app.use(cors());//使用

2、cors (处理编码数据)

  • body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
  • cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
  • multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
$ yarn add  body-parser --save
$ yarn add  cookie-parser --save
$ yarn add  multer --save

app.js之中我们对数据进行优化处理

引入:

import express from 'express'
import cors from 'cors'
import bodyParser from 'body-parser'

使用


const app = express();
app.use(express.json()); // 中间件,用于解析 POST 请求体中的 JSON 数据
app.use(cors());
app.use(bodyParser.json());  //配置解析,用于解析json和urlencoded格式的数据
app.use(bodyParser.urlencoded({
   extended: false}));

3、mysql数据连接池

Node.js使用mysql模块与数据库交互的两种主要的连接方式:createPoolcreateConnection

在Node.js中,mysql模块通常用于与MySQL数据库进行交互。mysql模块提供了两种主要的连接方式:createPoolcreateConnection。它们之间的主要区别在于连接的管理方式和性能方面。

(1) createPool:

  • createPool 方法创建了一个连接池,连接池会在需要时创建多个连接,并在不需要时将连接放回池中,以便重复使用。这种方式适用于大量并发请求的情况,因为它可以有效地管理连接,避免了频繁地创建和销毁连接的开销。
  • 连接池的大小通常可以配置,以控制同时打开的连接数量,以防止数据库过载。这样可以确保在高负载时系统仍然能够保持稳定。
    • 使用连接池时,通过从池中获取连接来执行查询操作,执行完毕后将连接释放回池中,这样可以最大程度地重用连接,提高性能和效率。

示例代码:

javascriptCopy Code
const mysql = require('mysql');

const pool = mysql.createPool({
   
  connectionLimit: 10, // 最大连接数
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'my_database'
});

pool.getConnection((err, connection) => {
   
  if (err) throw err;

  connection.query('SELECT * FROM my_table', (error, results, fields) => {
   
    connection.release(); // 释放连接
    if (error) throw error;
    console.log(results);
  });
});

(2) createConnection:

-   `createConnection` 方法每次调用都会创建一个新的数据库连接。这种方式适用于低负载的场景或者在单个请求中只需要少量查询的情况。
-   每次调用`createConnection`都会创建一个新的连接,执行完毕后需要手动关闭连接,否则会造成资源浪费和内存泄漏。

示例代码:

javascriptCopy Code
const mysql = require('mysql');

const connection = mysql.createConnection({
   
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'my_database'
});

connection.connect((err) => {
   
  if (err) throw err;
  console.log('Connected to MySQL database');

  connection.query('SELECT * FROM my_table', (error, results, fields) => {
   
    if (error) throw error;
    console.log(results);

    connection.end(); // 关闭连接
  });
});

总的来说,createPool适用于高并发的情况,可以有效地管理连接,提高性能和可靠性,而createConnection适用于低负载的场景或者简单的应用中。

目录
相关文章
|
14天前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
46 8
|
4天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
17 7
|
4天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
11 5
|
1天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
7 1
|
3天前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
17 3
|
5天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
16 4
|
8天前
|
存储 缓存 监控
数据库优化:提升性能与效率的关键策略
【10月更文挑战第21】数据库优化:提升性能与效率的关键策略
|
8天前
|
存储 分布式计算 监控
数据库优化:提升性能与效率的全面策略
【10月更文挑战第21】数据库优化:提升性能与效率的全面策略
|
12天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
23天前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响