Nodejsは接続mysqlデータベースをカプセル化し、ライブラリを使用してデータベースの削除・変更操作を実現する
一、先にmysqlミドルウェアを取り付ける
二、config.jsonプロファイル
三、パッケージmysql接続ライブラリ
上のライブラリにはasync_を組み合わせる必要があります.to使用
四、使用方法
パッケージ時にasyncを使用していたので、使用注意
npm i mysql --save
二、config.jsonプロファイル
{
"host": "localhost",
"port": "3306",
"user": "root",
"password": "root",
"database": "xiaou"
}
三、パッケージmysql接続ライブラリ
const mysql = require('mysql'); // mysql
const to = require('../utils/async_to');
const fs = require('fs');
const path = require('path');
class DB {
constructor({
host = 'localhost', // id
port = '3306', //
user = 'root', //
password = 'root', //
database = 'xiaou' //
} = {}) {
this.conn = null;
this.config = {
host,
port,
user,
password,
database
};
};
//1.
connect() {
// , , conn
this.conn = mysql.createConnection(this.config);
return new Promise((resolve, reject) => {
//
this.conn.connect(err => {
err ? reject(err) : resolve();
});
});
};
//2.
async query(sql, params = []) {
// query
let [err, data] = await to(this.connect());
if (err) throw err; //
return new Promise((resolve, reject) => {
this.conn.query(sql, params, (err, data) => {
err ? reject(err) : resolve(data);
});
});
};
//3.
close() {
this.conn.end();
};
}
//
let buf = fs.readFileSync(path.join(__dirname, 'config.json'));
// DB
module.exports = new DB(JSON.parse(buf.toString()));
上のライブラリにはasync_を組み合わせる必要があります.to使用
let to = (promise) => {
return promise
.then(data => [null, data])
.catch(err => [err, null]);
};
module.exports = to;
四、使用方法
パッケージ時にasyncを使用していたので、使用注意
async await
const db = require('../db');
const to = require('../../utils/async_to');
register();
//
let register = async(req, res) => {
let result = await existUser(username);
if (result.length > 0) {
res.send(myError(' '));
return;
}
}
//
async function existUser(username) {
// db.query
let [err, data] = await to(db.query("SELECT member.username FROM member WHERE username=?", username));
return err ? err : data;
};