首页 > 解决方案 > Sails.js 创建失败中的一对多关联

问题描述

Sails.js 应用程序无法在 mongo db 中创建一对多关系:

根据官方文档,我创建了两个链接的一对多实体,Post-Likes。我将它们放在 api/models 文件夹中,定义如下:

喜欢.js

module.exports = {
  attributes: {
    post: {
      model: 'post',
      required: true
    }
}

Post.js

module.exports = {
  attributes: {
    likes: {
      collection: 'like',
      via: 'post'
    },
    user: {
      model: 'user'
    }
  }
}

我在页面上用以下语句填充帖子的喜欢:

  const posts = await Post.find({user: id})
    .sort('createdAt DESC')
    .populate('user')
    .populate('likes');

在我使用命令运行sails.js 应用程序sails lift --drop并使用上面的代码加载页面后,我在控制台中收到以下错误消息:

错误:发送 500(“服务器错误”)响应:UsageError:无效填充。详细信息:无法填充likelike此模型中没有定义命名的属性。

at Object.module.exports [as user/profile] (/Users/new/Developer/ios/social/web_social/api/controllers/user/profile.js:8:30)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

我检查了 mongo db 实例,但看不到实体的任何空属性或 nulllike属性post

在此处输入图像描述

标签: node.jsmongodbsails.jssails-mongo

解决方案


尝试使您的模型名称为 initCap。像下面

    module.exports = {
  attributes: {
    post: {
      model: 'Post',
      required: true
    }
}

推荐阅读