私はmysql
自分のnodejsプロジェクトに使用しています。
これが私のSQLコードです:
var mysql = require('mysql');
var config = {
host: 'localhost',
username: 'root',
password: 'root',
port: 8889,
database: "BookDB",
connectionLimit: 100,
charset: 'UTF8_GENERAL_CI',
dialect: "mysql"
};
var pool = mysql.createPool({
connectionLimit: config.connectionLimit,
host : config.host,
user : config.username,
password : config.password,
database : config.database,
port : config.port,
charset : config.charset,
dialect : config.dialect
});
module.exports.pool = pool;
これが私のデータベースクエリコードです。ユーザー、プロファイル、アクティビティの 3 つのテーブルをデータベースに挿入します。私の問題は、常に 2 つのクエリを実行するだけで、最後のクエリは決して触れないように見えることです。エラーを出力しますが、何も表示されません。
例:私が挿入した場合(User, Profile, Activity)
。ジャストActivity
テーブルは挿入できません。私が挿入した場合(User, Activity, Profile)
。ジャストProfile
テーブルは挿入できません。これは、各テーブルの挿入コードが正しいことを意味します。
var async = require('async');
var pool = require('../config/mysql').pool;
var createUser = function createUser (username, password, email, firstName, lastName, avatarURL, // user table
quote, about, homepage, // profile table
lastLoginIP, // activity table
callback) {
// database connection
var dbc;
// user id for later reference
var userId;
var dateCreated = new Date();
var dateUpdated = dateCreated;
async.waterfall([
// get connection
function (callback) {
pool.getConnection(callback);
},
// insert user table
function (connection, callback) {
dbc = connection;
var params = {
Username: username,
Password: password,
EmailAddress: email,
FirstName: firstName,
LastName: lastName,
avatarURL: avatarURL,
DateCreated: dateCreated,
DateUpdated: dateUpdated
};
var query = "INSERT INTO USER SET ?";
dbc.query(query, params, callback);
},
// insert activity table
function(result, callback) {
userId = result.insertId;
console.log('second user id: ' + userId);
var params = {
ActivityID: userId,
ProfileView: 0,
LastLoginIP: lastLoginIP
};
var query = "INSERT INTO ACTIVITY SET ?";
dbc.query(query, params, callback);
},
// insert profile table
function (result, callback) {
// userId = result.insertId;
console.log('inserted userid: '+ userId);
var params = {
ProfileID: userId,
Quote: quote,
About: about,
HomePage: homepage,
DateCreated: dateCreated,
DateUpdated: dateUpdated
};
var query = "INSERT INTO PROFILE SET ?";
dbc.query(query, params, callback);
},
function (error, userData) {
console.log('end block');
if (dbc) dbc.release();
if (error) {
console.log('error');
report_error(error);
} else {
callback(null, userData);
}
}
]);
};
module.exports.createUser = createUser;
私の問題を理解してください。
ありがとう :)