Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs

WBOY
Lepaskan: 2023-06-01 12:40:06
ke hadapan
1266 orang telah melayarinya

Tukar hasil pertanyaan kepada objek atau tatasusunan

Dalam pembangunan sebenar, beberapa hasil pertanyaan sebenarnya harus dimasukkan ke dalam objek

JSON_OBJECT: () is The form of key-value

SELECT products.id as id, products.title as title, products.price as price, products.score as score,
	JSON_OBJECT('id', brand.id, 'name', brand.name, 'rank', brand.phoneRank, 'website', brand.website) as brand
FROM products LEFT JOIN brand ON products.brand_id = brand.id;
Salin selepas log masuk

Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs

Dalam perhubungan banyak-ke-banyak, perkara yang ingin kita tanyakan ialah tatasusunan:

  • Untuk contoh, maklumat berbilang kursus pelajar harus diletakkan dalam tatasusunan; perlu menggunakan

    JSON_ARRAYAGG
  • dan
  • JSON_OBJECT

    bersama-sama; >Pasang mysql2:

    SELECT stu.id, stu.name, stu.age,
    	JSON_ARRAYAGG(JSON_OBJECT('id', cs.id, 'name', cs.name)) as courses
    FROM students stu
    LEFT JOIN students_select_courses ssc ON stu.id = ssc.student_id
    LEFT JOIN courses cs ON ssc.course_id = cs.id
    GROUP BY stu.id;
    Salin selepas log masuk
  • Penggunaan mudah:
  • npm install mysql2
    Salin selepas log masuk

    Jika kita ingin menghentikan perkhidmatan selepas mendapat data, kita boleh menulis dalam fungsi panggil balik:

    const mysql = require('mysql2');
    
    // 1.创建数据库连接
    const connection = mysql.createConnection({
      host: 'localhost',
      port: 3306,
      database: 'coderhub',
      user: 'root',
      password: 'Coderwhy888.'
    });
    
    // 2.执行SQL语句
    const statement = `
      SELECT * FROM products WHERE price > 6000;
    `
    connection.query(statement, (err, results, fields) => {
      console.log(results);
    });
    Salin selepas log masuk
    Kod penuh :
    connection.end()
    Salin selepas log masuk
    Penyata Disediakan (penyata yang disediakan)

  • Tingkatkan prestasi: hantar modul pernyataan yang dicipta ke MySQL, dan kemudian MySQL menyusun (menghuraikan, mengoptimumkan, Menukar) modul pernyataan dan menyimpan
tetapi tidak melaksanakannya Kemudian, apabila kami benar-benar melaksanakannya, kami akan memberikan parameter sebenar kepada

sebelum ia dilaksanakan beberapa kali, ia hanya akan disusun sekali, jadi prestasinya lebih tinggi ; >Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs Penekanan: Jika penyataan dilaksanakan semula, ia akan diperoleh daripada Cache LRU (Paling Kurang Digunakan), tanpa mengambil masa untuk menyusun penyataan untuk meningkatkan prestasi.

connection.query(statement, (err, results, fields) => {
  console.log(results);
  connection.end();
});
Salin selepas log masuk

Kolam Sambungan

Kami telah membuat sambungan lebih awal, tetapi jika kami mempunyai berbilang permintaan, sambungan itu mungkin akan diduduki, maka kami Adakah saya perlu membuat sambungan baharu setiap kali permintaan dibuat?

Malah, mysql2 memberikan kami kumpulan sambungan;

Kolam sambungan boleh membuat sambungan secara automatik apabila diperlukan akan dimusnahkan, tetapi akan diletakkan dalam kumpulan sambungan dan boleh digunakan kemudian; >


?Tentukan sama ada sambungan berjaya

// 2.执行SQL语句: 使用 ?来对参数进行占位
const statement = `
  SELECT * FROM products WHERE price > ? AND score > ?;
`
connection.execute(statement, [6000, 7], (err, results) => {
  console.log(results);
});
Salin selepas log masuk

Penggunaan pangkalan data yang mudah

rreee

Kaedah Janji
    const mysql = require('mysql2');
    
    // 1.创建连接池
    const connections = mysql.createPool({
      host: 'localhost',
      port: 3306,
      database: 'coderhub',
      user: 'root',
      password: 'Coderwhy888.',
      connectionLimit: 10
    });
    
    connections.getConnection((err, conn) => {
      conn.connect((err) => {
        if(err){
          console.log('连接失败:',err)
        } else {
          console.log('数据库连接成功~')
        }
      })
    })
    Salin selepas log masuk
  • sequelize

  • Pemetaan Hubungan Objek (ORM)
  • : Ia adalah penyelesaian pengaturcaraan:

  • Dari segi kesan, Ia memberikan kesan yang boleh digunakan dalam bahasa pengaturcaraan,

    menggunakan pangkalan data objek maya

    ;

ORM dalam Node yang biasa kita gunakan sequelize;

Sequelize ialah ORM berasaskan Node.js untuk Postgres, MySQL, MariaDB, SQLite dan Microsoft SQL Server

Ia menyokong banyak ciri; >

Jika kita ingin menggunakan Sequelize dengan MySQL, maka kita perlu memasang dua perkara dahulu:

    mysql2: sequelize apabila mengendalikan mysql Mysql2 digunakan;
  • sequelize: Gunakannya untuk memetakan objek ke jadual; >

    Langkah 1: Buat objek Sequelize dan nyatakan pangkalan data, nama pengguna, kata laluan, jenis pangkalan data, alamat hos, dll.;
Langkah 2: Uji sambungan sama ada ia berjaya;
const mysql = require('mysql2');

// 1.创建连接池
const connections = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'coderhub',
  user: 'root',
  password: 'Coderwhy888.',
  connectionLimit: 10
});

// 2.使用连接池
const statement = `
  SELECT * FROM products WHERE price > ? AND score > ?;
`
connections.execute(statement, [6000, 7], (err, results) => {
  console.log(results);
});
Salin selepas log masuk

Operasi meja tunggal Sequelize

const mysql = require('mysql2');

// 1.创建连接池
const connections = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'coderhub',
  user: 'root',
  password: 'Coderwhy888.',
  connectionLimit: 10
});

// 2.使用连接池
const statement = `
  SELECT * FROM products WHERE price > ? AND score > ?;
`
connections.promise().execute(statement, [6000, 7]).then(([results,fields]) => {
  console.log(results);
}).catch(err => {
  console.log(err);
});
Salin selepas log masuk
    Operasi satu-ke-banyak Sequelize
  • npm install sequelize mysql2
    Salin selepas log masuk

    Operasi banyak-ke-banyak Sequelize

    const { Sequelize } = require('sequelize');
    
    const sequelize = new Sequelize('coderhub', 'root', 'Coderwhy888.', {
      host: 'localhost',
      dialect: 'mysql'//连接的数据库类型:mysql,mongoose
    });
    
    sequelize.authenticate().then(() => {
      console.log("连接数据库成功~");
    }).catch(err => {
      console.log("连接数据库失败~", err);
    });
    Salin selepas log masuk

    Atas ialah kandungan terperinci Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan