用sequelize表还用自己创建么
展开全部
使用sequelize能够较为方便的按照MVC模式组织nodejs程序后端架构。这篇文章,就笔者认为,其中较为有用且稍有难度的association进行分享。
通常,模型之间共有三种关系,1:1,1:n,n:m。以下举例逐个击破。
1:1.假如有user和userinfo俩个模型,分别对应用户,以及用户的资料。此时,每个用户应当有且只有一个用户资料,由此,user与uerinfo的关系应当为1:1.在sequelize中,使用hasOne与belongsTo进行描述。在实际的模型中
1 // in User model
2 associate: function(models){
3 User. hasOne(models.UserInfo);
4 }
5 //in UserInfo model
6 associate: function(models){
7 UserInfo.belongsTo(models.User);
8 }
上边这段代码中,讲的就是,一个User有一个UserInfo,一个UserInfo反过来属于一个User。由此双方关系确立。运行代码后,sequelize会自动在UserInfo中增加一个外键UserId.在搜索的时候如果需要获取UserInfo,可以使用下面俩种方式:
1 models.User.findOne({
2 where:{ id: userid },
3 include: {model: models.UserInfo, as: 'Info'}
4 }).then(function(user){
5 /*{
6 name: 'xxx',
7 UserInfo: {
8 email: 'xxx'
9 }
通常,模型之间共有三种关系,1:1,1:n,n:m。以下举例逐个击破。
1:1.假如有user和userinfo俩个模型,分别对应用户,以及用户的资料。此时,每个用户应当有且只有一个用户资料,由此,user与uerinfo的关系应当为1:1.在sequelize中,使用hasOne与belongsTo进行描述。在实际的模型中
1 // in User model
2 associate: function(models){
3 User. hasOne(models.UserInfo);
4 }
5 //in UserInfo model
6 associate: function(models){
7 UserInfo.belongsTo(models.User);
8 }
上边这段代码中,讲的就是,一个User有一个UserInfo,一个UserInfo反过来属于一个User。由此双方关系确立。运行代码后,sequelize会自动在UserInfo中增加一个外键UserId.在搜索的时候如果需要获取UserInfo,可以使用下面俩种方式:
1 models.User.findOne({
2 where:{ id: userid },
3 include: {model: models.UserInfo, as: 'Info'}
4 }).then(function(user){
5 /*{
6 name: 'xxx',
7 UserInfo: {
8 email: 'xxx'
9 }
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询