我正在使用Sequelize ORM下的功能添加默认范围。我在这里http://docs.sequelizejs.com/manual/scopes.html遵循了这些教程,而对于Scope接受参数,我们需要像这样传递对象
Project.scope('random', { method: ['accessLevel', 19]}).findAll();
因此,在我的视频模型代码中,我添加了一个名为“ defaultScope”的范围
Video.addScope(
'defaultScope',
(userId) => {
*********** scope description here*********
})
这就是我使用模型的方式:
const videos = await models.video.scope({
method: ['defaultScope', 'I hardcode userId here']
}).findAll();
console.log(videos);`
但是我总是遇到错误(node:43214) UnhandledPromiseRejectionWarning: SequelizeScopeError: Invalid scope null called.
如果我使用另一个作用域名称而不是“ defaultScope”,则我的代码可以正常工作,并且我可以成功获取对象。但是,由于它的范围很广,因此我希望将其设置为默认值。我只是感到困惑,为什么正常范围有效,但默认范围无效。有相关经验的人可以帮我解决这个问题吗?谢谢!