node.js - 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:无效填充。详细信息:无法填充
like
。like
此模型中没有定义命名的属性。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
:
解决方案
尝试使您的模型名称为 initCap。像下面
module.exports = {
attributes: {
post: {
model: 'Post',
required: true
}
}
推荐阅读
- google-cloud-platform - 是否可以保持两个 GCP 调度任务之间的依赖关系?
- c++ - C++入门5版:使用get成员初始化另一个shared_ptr独立对象
- android - 如何将 sam 转换应用于我的匿名类实现并将其转换为 lambda
- javascript - 如何给每个圆圈随机颜色?
- html - 无论桌面浏览器尺寸如何,始终显示图像
- node.js - 将流从 Fluent-ffmpeg 传递到 Google Cloud Storage
- c++ - 我用 C++ 制作了一个转换器,可以将英里转换为公里,公里转换为英里,摄氏度转换为华氏度,华氏度转换为摄氏度
- ruby-on-rails - 覆盖 has_many getter
- c++ - 创建文件夹结构
- r - 如何检查向量是否是斐波那契数列