Javascript 如何找到不在团队节点中的用户
我试图创建一个功能,当搜索一个用户邀请到一个团队,但只显示用户还没有在该团队 这是我的modalJavascript 如何找到不在团队节点中的用户,javascript,sql,node.js,postgresql,Javascript,Sql,Node.js,Postgresql,我试图创建一个功能,当搜索一个用户邀请到一个团队,但只显示用户还没有在该团队 这是我的modalteam.js: "use strict"; module.exports = (sequelize, DataTypes) => { const Team = sequelize.define( "Team", { id: { type: DataTypes.UUID, defaultVal
team.js
:
"use strict";
module.exports = (sequelize, DataTypes) => {
const Team = sequelize.define(
"Team",
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
},
title: {
type: DataTypes.STRING,
allowNull: false,
},
type: DataTypes.STRING,
mission: DataTypes.STRING,
agreement: DataTypes.STRING,
inputs: DataTypes.STRING,
outputs: DataTypes.STRING,
picture: DataTypes.STRING,
duration_in_months: DataTypes.INTEGER,
badge: DataTypes.INTEGER,
// restriction: DataTypes.INTEGER,
status: DataTypes.STRING,
mergedTo: DataTypes.UUID,
date_closed: DataTypes.DATE,
public_team_id: {
type: DataTypes.STRING,
allowNull: false,
},
current_members_count: {
type: DataTypes.INTEGER,
allowNull: false,
},
current_invites_count: {
type: DataTypes.INTEGER,
allowNull: false,
},
max_team_members_allowed: {
type: DataTypes.INTEGER,
allowNull: false,
},
max_invites_allowed: {
type: DataTypes.INTEGER,
allowNull: false,
},
rules: {
type: DataTypes.ARRAY(DataTypes.STRING),
defaultValue: [],
},
},
{
tableName: "Teams",
timestamps: true,
indexes: [{ unique: false, fields: ["id", "title"] }],
}
);
Team.associate = function (models) {
Team.belongsTo(models.User, {
foreignKey: "creatorId",
});
Team.hasMany(models.Membership, {
foreignKey: "teamId",
});
Team.hasMany(models.TeamChannel, {
foreignKey: "teamId",
});
Team.hasMany(models.TeamSkills, {
foreignKey: "TeamId",
});
Team.hasMany(models.Rating, {
foreignKey: "teamId",
});
Team.hasMany(models.InvitesApplications, {
foreignKey: "teamId",
});
Team.hasMany(models.Events, {
foreignKey: "teamId",
});
Team.hasMany(models.SubTeam, {
foreignKey: "teamId",
});
Team.belongsTo(models.Room, {
foreignKey: "roomID",
});
};
return Team;
};
"use strict";
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
"User",
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
},
fullname: {
type: DataTypes.STRING,
allowNull: false,
},
passwordhash: DataTypes.STRING,
institution: DataTypes.STRING,
bio: DataTypes.STRING,
creator_user_id: DataTypes.UUID,
public_user_id: DataTypes.STRING,
picture: DataTypes.STRING(300),
email: { type: DataTypes.STRING, unique: true },
service: DataTypes.STRING,
gender: DataTypes.STRING,
age: DataTypes.INTEGER ,
altId: DataTypes.STRING,
location: DataTypes.STRING,
mergedTo: DataTypes.UUID,
document: DataTypes.STRING,
webpage: DataTypes.STRING, // User's website url
linkedin: DataTypes.STRING, // Linkedin url
signupIP: DataTypes.STRING, // IP during sign up
major: DataTypes.STRING,
verifiedDT: DataTypes.DATE, // the timestamp of when the user was verified
couponsUsed: DataTypes.ARRAY(DataTypes.STRING),
teamCredits: DataTypes.INTEGER , //Passes to allow creation of more than 1 team
resetToken: DataTypes.STRING, // Password token
resetTokenExpires: DataTypes.DATE, // Password token expire date
uniqueToken: DataTypes.STRING, // Email token
expireToken: DataTypes.DATE, // Email token expire date
// searchable: DataTypes.BOOLEAN
},
{
tableName: "Users",
timestamps: true,
indexes: [
{
unique: false,
fields: ["email", "id", "fullname", "public_user_id"],
},
],
}
);
User.associate = function (models) {
User.belongsToMany(models.Skill, { through: models.UserSkills });
User.hasMany(models.Team, {
foreignKey: "creatorId",
});
User.hasMany(models.Membership, {
foreignKey: "memberId",
});
User.hasMany(models.Rating, {
foreignKey: "raterId",
});
User.hasMany(models.Rating, {
foreignKey: "rateeId",
});
User.hasMany(models.InvitesApplications, {
foreignKey: "senderId",
});
User.hasMany(models.InvitesApplications, {
foreignKey: "receiverId",
});
User.hasMany(models.Message, {
foreignKey: "userID"
});
User.hasMany(models.Participant, {
foreignKey: "senderID"
});
User.hasMany(models.Participant, {
foreignKey: "receiverID"
});
};
return User;
};
这是我的modaluser.js
:
"use strict";
module.exports = (sequelize, DataTypes) => {
const Team = sequelize.define(
"Team",
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
},
title: {
type: DataTypes.STRING,
allowNull: false,
},
type: DataTypes.STRING,
mission: DataTypes.STRING,
agreement: DataTypes.STRING,
inputs: DataTypes.STRING,
outputs: DataTypes.STRING,
picture: DataTypes.STRING,
duration_in_months: DataTypes.INTEGER,
badge: DataTypes.INTEGER,
// restriction: DataTypes.INTEGER,
status: DataTypes.STRING,
mergedTo: DataTypes.UUID,
date_closed: DataTypes.DATE,
public_team_id: {
type: DataTypes.STRING,
allowNull: false,
},
current_members_count: {
type: DataTypes.INTEGER,
allowNull: false,
},
current_invites_count: {
type: DataTypes.INTEGER,
allowNull: false,
},
max_team_members_allowed: {
type: DataTypes.INTEGER,
allowNull: false,
},
max_invites_allowed: {
type: DataTypes.INTEGER,
allowNull: false,
},
rules: {
type: DataTypes.ARRAY(DataTypes.STRING),
defaultValue: [],
},
},
{
tableName: "Teams",
timestamps: true,
indexes: [{ unique: false, fields: ["id", "title"] }],
}
);
Team.associate = function (models) {
Team.belongsTo(models.User, {
foreignKey: "creatorId",
});
Team.hasMany(models.Membership, {
foreignKey: "teamId",
});
Team.hasMany(models.TeamChannel, {
foreignKey: "teamId",
});
Team.hasMany(models.TeamSkills, {
foreignKey: "TeamId",
});
Team.hasMany(models.Rating, {
foreignKey: "teamId",
});
Team.hasMany(models.InvitesApplications, {
foreignKey: "teamId",
});
Team.hasMany(models.Events, {
foreignKey: "teamId",
});
Team.hasMany(models.SubTeam, {
foreignKey: "teamId",
});
Team.belongsTo(models.Room, {
foreignKey: "roomID",
});
};
return Team;
};
"use strict";
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
"User",
{
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
},
fullname: {
type: DataTypes.STRING,
allowNull: false,
},
passwordhash: DataTypes.STRING,
institution: DataTypes.STRING,
bio: DataTypes.STRING,
creator_user_id: DataTypes.UUID,
public_user_id: DataTypes.STRING,
picture: DataTypes.STRING(300),
email: { type: DataTypes.STRING, unique: true },
service: DataTypes.STRING,
gender: DataTypes.STRING,
age: DataTypes.INTEGER ,
altId: DataTypes.STRING,
location: DataTypes.STRING,
mergedTo: DataTypes.UUID,
document: DataTypes.STRING,
webpage: DataTypes.STRING, // User's website url
linkedin: DataTypes.STRING, // Linkedin url
signupIP: DataTypes.STRING, // IP during sign up
major: DataTypes.STRING,
verifiedDT: DataTypes.DATE, // the timestamp of when the user was verified
couponsUsed: DataTypes.ARRAY(DataTypes.STRING),
teamCredits: DataTypes.INTEGER , //Passes to allow creation of more than 1 team
resetToken: DataTypes.STRING, // Password token
resetTokenExpires: DataTypes.DATE, // Password token expire date
uniqueToken: DataTypes.STRING, // Email token
expireToken: DataTypes.DATE, // Email token expire date
// searchable: DataTypes.BOOLEAN
},
{
tableName: "Users",
timestamps: true,
indexes: [
{
unique: false,
fields: ["email", "id", "fullname", "public_user_id"],
},
],
}
);
User.associate = function (models) {
User.belongsToMany(models.Skill, { through: models.UserSkills });
User.hasMany(models.Team, {
foreignKey: "creatorId",
});
User.hasMany(models.Membership, {
foreignKey: "memberId",
});
User.hasMany(models.Rating, {
foreignKey: "raterId",
});
User.hasMany(models.Rating, {
foreignKey: "rateeId",
});
User.hasMany(models.InvitesApplications, {
foreignKey: "senderId",
});
User.hasMany(models.InvitesApplications, {
foreignKey: "receiverId",
});
User.hasMany(models.Message, {
foreignKey: "userID"
});
User.hasMany(models.Participant, {
foreignKey: "senderID"
});
User.hasMany(models.Participant, {
foreignKey: "receiverID"
});
};
return User;
};
searchUserToInvite函数:
const searchUserToInvite = async (req, res) => {
....
}
我正在使用postgresSQL作为数据库,如何实现此功能?
有人可以帮我或者给我指一些关于这方面的芭蕾舞。
非常感谢。有人能帮我构建此功能吗?