我应该如何使用MEAN堆栈来处理我的后端devise?

这可能更多是寻找build议的情况。 但是,我将提供示例代码作为我想要实现的示例。 我正在尝试构build我的第一个后端系统,并且一直在遇到devise问题。

我的MongoDB数据库由四个主要部分组成 – configuration文件,团队,草稿和用户。 configuration文件(是使用ID来源的所有主要数据)架构具有用于保存具有团队和草稿ID的数组的属性。 这个想法是,当configuration文件被提供时,它将通过使用ID来填充所有这些属性和相关数据。

使用Mongoose的configuration文件模式的示例:

var mongoose = require('mongoose'); var Schema = mongoose.Schema; var UserProfileSchema = new Schema({ Name : String, Email : String, Admin : Boolean, Status : Number, UserID : String, PrivateProfile: Boolean, Drafts: [String], //This array holds the draft IDs Teams:[String] //Holds the team profiles IDs }); module.exports = mongoose.model('UserProfile', UserProfileSchema); 

使用Mongoose的团队configuration文件模式示例:

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var TeamProfileSchema = new Schema({ Name : String, CaptainID : String, CaptainName : String, Members : [String], //Array of user IDs DateCreated : Boolean, Reputation : Number }); module.exports = mongoose.model('TeamProfile', TeamProfileSchema); 

查找所有Team Profiles的path示例用户是队长,并获取与该团队相关的所有成员:

 router.route('/teams/captain/:user_id') .get(function (req, res) { TeamProfile.find({ CaptainID : req.params.user_id }, function (err, teams) { if (err) res.send(err); for (var x in teams) { var membersArray = []; for (var i in teams[x].Members) { var ID = teams[x].Members[i]; UserProfile.find({ UserID : ID }, function (err, profile) { if (err) res.send(err); membersArray.push(profile); }); } teams[x].Members = membersArray; console.log(teams[x].Members); } res.json(teams); }); }) 

我知道这条路线不行,但我该怎么办? 我用了更多的香草方法来解释我想达到的目的。 任何帮助将不胜感激。

我build议你使用非规范化规范化的组合。

因为MongoDB不是一个关系数据库

非规范化标准化要快得多。 你不需要再使用关系了。

你可以阅读这篇文章,希望对你有所帮助。

干杯