Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 续集v3—;如何将hasMany关系的默认值设置为空列表?_Javascript_Associations_Sequelize.js_Model Associations - Fatal编程技术网

Javascript 续集v3—;如何将hasMany关系的默认值设置为空列表?

Javascript 续集v3—;如何将hasMany关系的默认值设置为空列表?,javascript,associations,sequelize.js,model-associations,Javascript,Associations,Sequelize.js,Model Associations,我正在用它作为我的ORM。我有一个简单的用户模型,如下所示。用户有许多注释,而注释属于用户 models/user.js(根据相关内容进行调整) models/comment.js(也经过修剪) 我创建了一个测试,如下所示(为简洁起见进行了修剪) 导致 Unhandled rejection AssertionError: expected { Object (name, ...) } to have a property 'comments' 但是,如果我像这样指定我的userData co

我正在用它作为我的ORM。我有一个简单的
用户
模型,如下所示。
用户
有许多
注释
,而
注释
属于
用户

models/user.js
(根据相关内容进行调整)

models/comment.js
(也经过修剪)

我创建了一个测试,如下所示(为简洁起见进行了修剪)

导致

Unhandled rejection AssertionError: expected { Object (name, ...) } to have a property 'comments'
但是,如果我像这样指定我的
userData

const userData = {
  name: 'test',
  comments: []
}
考试通过得很好


我怎样才能告诉Sequelize只将空注释列表作为默认值?

实际上,此功能不是模型创建的一部分

它与获取数据时的查询相关。 您可以在findAll的include语句中使用nested:true选项

User.findAll({ 
    include: [{ 
    model: Comment, 
    as: "comments", 
    nested: true 
}]});

来源:

实际上,此功能不是模型创建的一部分

它与获取数据时的查询相关。 您可以在findAll的include语句中使用nested:true选项

User.findAll({ 
    include: [{ 
    model: Comment, 
    as: "comments", 
    nested: true 
}]});

来源:

我认为您必须通过以下方式手动获取评论:
user.getComments()
。我认为您必须通过以下方式手动获取评论:
user.getComments()
const userData = {
  name: 'test',
  comments: []
}
User.findAll({ 
    include: [{ 
    model: Comment, 
    as: "comments", 
    nested: true 
}]});