javascript - Beberapa soalan tentang menggunakan modul mysql untuk menyambung ke pangkalan data
PHP中文网
PHP中文网 2017-05-16 13:37:28
0
1
432

Lihat kod contoh seperti ini;

const mysql = require('mysql');

exports.base = (sql, data, callback) => {
    // 创建数据库连接
    let connection = mysql.createConnection({
        host: 'localhost', //数据库所在的服务器域名或者IP
        user: 'root', //用户名
        password: '', //密码
        database: 'book' //数据库名称
    });
    // 执行连接动作
    connection.connect();
    // 执行数据库操作
    connection.query(sql, data, (err, rows) => {
        if (err) throw err;
        callback(rows);
    });
    // 关闭数据库
    connection.end();
}

Ia sepatutnya kelihatan seperti ini

const mysql = require('mysql');

exports.base = (sql, data, callback) => {
    // 创建数据库连接
    let connection = mysql.createConnection({
        host: 'localhost', //数据库所在的服务器域名或者IP
        user: 'root', //用户名
        password: '', //密码
        database: 'book' //数据库名称
    });
    // 执行连接动作
    connection.connect();
    // 执行数据库操作
    connection.query(sql, data, (err, rows) => {
        if (err) throw err;
        callback(rows);
        // 关闭数据库
        connection.end();
    });
    
}

Saya hanya merasakan bahawa penutupan sambungan pangkalan data harus dilakukan dalam panggilan balik pertanyaan Jika ia ditulis seperti cara pertama dan pertanyaan tidak selesai, adakah tidak sesuai untuk menutup pangkalan data ini? tidak begitu jelas;

PHP中文网
PHP中文网

认证0级讲师

membalas semua(1)
小葫芦

Dokumentasi:

Penutupan sambungan dilakukan menggunakan end() yang memastikan semua pertanyaan yang tinggal dilaksanakan sebelum menghantar paket berhenti ke pelayan mysql.

Jadi, panggilan end() tidak akan menutup sambungan dengan serta-merta. Ia tidak akan ditutup sehingga pertanyaan selebihnya dilaksanakan. destroy() menutup sambungan terus. end()不会马上关闭连接,要等剩余的查询执行完才关闭,该触发的回调还是触发。destroy()才是直接关闭连接。

具体实现就是把全部操作都放到队列里执行,end()

Pelaksanaan khusus adalah untuk meletakkan semua operasi ke dalam baris gilir untuk pelaksanaan end() hanya meletakkan operasi Keluar ke dalam baris gilir, dan ia tidak benar-benar ditutup sehingga operasi Keluar dilaksanakan. 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan