オブジェクト メソッドを関数の引数として渡すとき、メソッドのコンテキスト (this) が正しく設定されていることを確認するために、「bind」を使用する必要があります。それから私のコードにはたくさんのバインドがあります...これはJSコードを書くためのきれいな方法ですか? メソッドを渡すための推奨される設計パターンは何ですか? オブジェクト全体を渡すか、オブジェクトを再設計する必要がありますか?
ありがとうございました。
ご参考までに、私のコードをここに貼り付けました。これは間違いなく良いコードではありません。たとえば、おそらく、1 つずつ呼び出すのではなく、複数の SQL ステートメントを使用したいと思うかもしれません。
function insertDB(response, postData) {
var mysql = require('mysql');
var async = require('async');
var connection = mysql.createConnection({
host : 'localhost',
user : 'user',
password : 'pswd',
database : 'mydb',
});
async.series([
connection.connect.bind(connection),
async.apply(connection.query.bind(connection),
"CREATE TABLE IF NOT EXISTS concepts ("+
"name VARCHAR(64) NOT NULL,"+
"priority INT NOT NULL DEFAULT 0,"+
"date DATE NOT NULL,"+
"notes VARCHAR(256),"+
"PRIMARY KEY (name))"),
async.apply(connection.query.bind(connection),
"INSERT INTO concepts VALUES('" +
postData["word"] + "',0,CURDATE(),'')"),
connection.end.bind(connection)
],
function(err, result) {
if (err) console.error(err);
});
}