私は今、学校プロジェクトに取り組んでいます。私は私の "マッチング関数"に約束していますが、明らかにこれを間違っています。 私は、ユーザーが他の人と出会い、彼らと「一致」できる出会い系サイトを持っています。これがアイディアです。私は提案をしているので、プロファイルを自動的に提案します。これまでのところ、私は「ストレートユーザー」のための人々を提案することができますが、ここで私は「バイユーザ」のためにそれをしようとしています。私は約束を正しく使用していますか?
私は私はそれを「まっすぐユーザー」(straightPotentials
)の私のテーブルを与えているが、それは私の他の条件(else if (biPotentials)
)
なぜに入ることができれば、それは完璧に動作し、getPotentialsLocation()
と呼ばれる機能がありますか?私の周りのみんなが試みましたが、答えは見つかりませんでした。
私は 'まっすぐなユーザー'を取得しようとしているので、場所とすべての行を返します。私はconsole.log(biPotentials)
のすべての方法を行うことができますが、私は '二人のユーザー'にしようとしている場合、それは他の条件イベントに入ることができないため、ブロックされます。
私のコードが意味をなさないことを願っています。私はここに
router.post('/matchaSearch', function (req, res) {
var username = session.uniqueID;
var searcherInfos = {};
var straightPotentials = [];
var biPotentials = [];
function suggestUsers(){
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
var query = 'SELECT sex, orientation FROM usersinfo WHERE username = ?';
connection.query(query, [username], (err, rows, fields) => {
connection.release()
return err ? reject(err) : resolve(rows)
})
})
})
}
suggestUsers()
.then((rows) => {
searcherInfos = rows;
if (searcherInfos[0].sex === 'm' && searcherInfos[0].orientation === 's'){
console.log("searcher is straight");
lookForSF()
.then((rows) => {
if (rows) {
for (var i = 0; i < rows.length; i++) {
straightPotentials.push(rows[i].username)
}
if (straightPotentials){
console.log("straightPotentials" + straightPotentials);
getPotentialsLocation()
.then((rows) => {
console.log(rows);
}).catch((err) => {
throw err;
})
}
}
}).catch((err) => {
throw err;
});
} else if ((searcherInfos[0].sex) && searcherInfos[0].orientation === 'b'){
console.log("searcher is bi");
lookForbothCauseImB()
.then((rows) => {
if (rows) {
for (var i = 0; i < rows.length; i++) {
biPotentials.push(rows[i].username)
}
if (biPotentials){
console.log("biPotentials" + biPotentials);
getPotentialsLocation()
.then((rows) => {
console.log(rows);
}).catch((err) => {
throw err;
})
}
}
}).catch((err) => {
throw err;
})
}
//this is the .catch for my first function (suggestUsers())
}).catch((err) => {
throw err;
})
function lookForSF(){
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
var query = 'SELECT username FROM usersinfo WHERE sex = "f" AND orientation = "s" AND username != ?';
connection.query(query, [username], (err, rows, fields) => {
connection.release()
return err ? reject(err) : resolve(rows)
})
})
})
}
function lookForbothCauseImB(){
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
var query = 'SELECT username FROM usersinfo WHERE sex = "f" OR sex = "m" AND orientation = "s" OR orientation = "b" AND username != ?';
connection.query(query, [username], (err, rows, fields) => {
connection.release()
return err ? reject(err) : resolve(rows)
})
})
})
}
function getPotentialsLocation(){
if (straightPotentials) {
var string = '('
for (var i =0; i <straightPotentials.length - 1; i++){
string += '\'' + straightPotentials[i] + '\', ';
}
string += '\'' + straightPotentials[straightPotentials.length - 1] + '\')';
return new Promise((resolve, reject) =>{
pool.getConnection((err, connection) => {
var query = 'SELECT * FROM userlocation WHERE username IN ' + string;
console.log("this is our query " + query);
connection.query(query, (err, rows, fields) => {
connection.release();
return err ? reject(err) : resolve(rows)
})
})
})
} else if (biPotentials) {
var string = '('
for (var i =0; i <biPotentials.length - 1; i++){
string += '\'' + biPotentials[i] + '\', ';
}
string += '\'' + biPotentials[biPotentials.length - 1] + '\')';
console.log("this is string" + string);
return new Promise((resolve, reject) =>{
pool.getConnection((err, connection) => {
var query = 'SELECT * FROM userlocation WHERE username IN ' + string;
console.log("this is our query " + query);
connection.query(query, (err, rows, fields) => {
connection.release();
return err ? reject(err) : resolve(rows)
})
})
})
}
}
})
コードハイライトを修正することをお勧めします。 –
私はあなたがいつもstraightPotentialsをテストしているようです(これは常に[]]のように真であるため、biPotentialsの条件は評価されません)。 ..} else if(biPotentials){// ...} } ' – sweaver2112