我想要做的是通過他們的用戶名找到用戶,並且還包括他們是否是當前用戶的朋友。如何正確構建此Sequelize查詢?
我想嘗試用一個查詢來做到這一點,這樣我就可以減輕服務器上的負載。我傾向於認爲,在用戶名後面的用戶名後,我將不得不做另一個查詢,以查看他們是不是朋友。
exports.findUser = (req, res) => {
//Get the username of the person to find
var username = req.params.username.toLowerCase();
if (!username) {
//No username given
res.status(400).send();
} else if (username == req.user.get('username')) {
//Send back a 400 because we dont want users thinking there is someone with their username
res.status(400).send()
}
//Get a user where the username matches the one given
db.user.findOne({
where: {
username: username
},
attributes: [
"id",
"username"
],
include: [{
model: db.friend,
where: {
//Or is used because we don't know who created the friendship
$or: [
{
friendOneId: NEED THE ID OF THE USER IM SEARCHING,
friendTwoId: req.user.get('id')
},
{
friendOneId: req.user.get('id'),
friendTwoId: NEED THE ID OF THE USER IM SEARCHING
}
]
}
}]
}).then(function(user) {
if (user) {
res.json(user);
} else {
res.status(404).send();
}
}, function(e) {
res.status(500).send();
});
};
這裏的要求
module.exports = function(sequelize, DataTypes){
return sequelize.define('friend', {
friendOneId: {
type: DataTypes.INTEGER,
allowNull: false
},
friendTwoId: {
type: DataTypes.INTEGER,
allowNull: false
}
});
};
與您的問題無關,但您可以省略:.toJSON(),只需要用戶在回覆中 – DZDomi
感謝您指出這一點 – ConnorB
您能向我們展示您的朋友模型文件嗎?或數據庫結構? – DZDomi