#javascript #mysql #node.js
#javascript #mysql #node.js
Вопрос:
Я пытаюсь установить этот объект:
var userPref = {}
к возвращению mysql из этого запроса:
var qSelect = "SELECT age_min, age_max, max_distance, partner_gender_id, partner_children, partner_family_plans FROM User_Preferences WHERE user_id = ?";
var qValues = [user_pref_id];
var qCall = mysql.format(qSelect, qValues);
connection.query(qCall, function(err, userPrefFound, fields) {
if (err) {
console.log("get my preferences error: " err);
callback(false);
} else {
userPref = userPrefFound[0];
console.log("userPref", userPref)
if (userPrefFound.length > 0 amp;amp; userPref.max_distance < 300) {
getUserLocation();
} else {
getUserPrefEth();
}
}
});
Мой userPref выводится как RowDataPacket
userPref RowDataPacket {
age_min: 18,
age_max: 65,
max_distance: 5,
partner_gender_id: 2,
partner_children: 2,
partner_family_plans: 3 }
что тогда не позволяет мне установить объект следующим образом
var politics_interested = [];
var qSelect = "SELECT politics_type FROM User_Pref_Politics WHERE user_id = ?";
var qValues = [user_pref_id];
var qCall = mysql.format(qSelect, qValues);
connection.query(qCall, function(err, userPrefPolitics, fields) {
if (err) {
console.log("get my preferences politics error: " err);
callback(false);
} else {
if (userPrefPolitics.length > 0) {
userPrefPolitics.forEach(function(i) {
politics_interested.push(i.politics_type);
});
}
console.log("politics_interested", userPref)
userPref["politics_interested"] = politics_interested;
getUserPrefMarital();
}
});
и выводит эту ошибку:
node_modulesmysqllibprotocolParser.js:437
throw err; // Rethrow non-MySQL errors
^
TypeError: Cannot set property 'politics_interested' of undefined
Как мне получить возвращаемое значение из mysql и установить его как объект?
Я попробовал это для массива userPref[‘religious_level_interested’] = JSON.parse(JSON.stringify(userPrefRelig)); но когда я пробую это для объекта, это не работает, не уверен, что это тоже работает.
Комментарии:
1. Является ли второй
connection.query
вызов a внутриgetUserPrefEth()
функции?2. Они находятся в отдельных функциях, но userPref = {} находится вне их
3. Возможно ли, что есть условие гонки, хм
4. ДА. Я полагаю, вы пытаетесь установить politics_interested до завершения первого запроса.