猫鼬模式预保存中的 ESLint 意外“this”错误

Posted

技术标签:

【中文标题】猫鼬模式预保存中的 ESLint 意外“this”错误【英文标题】:ESLint unexpected 'this' error in mongoose schema pre-save 【发布时间】:2019-06-30 23:45:04 【问题描述】:

在我的模型上调用猫鼬模式预保存时,我将“_id”值重新分配给“id”。

一切都按预期工作,并且在保存期间正确分配了值,但是 ESLint 触发了“no-invalid-this”配置参数的错误。

如何在不关闭 ESLint 配置的情况下消除此错误?是否有另一种方法可以在不使用“this”的情况下在保存模型之前重新分配值?

这是代码示例。

annotationSchema.pre('save', function (next) 
    this.id = this._id;
    next();
);

ESLINT 错误: 严重性:错误 提供者: ESLint 描述:意外的“这个”。 (no-invalid-this)

【问题讨论】:

您可以只禁用这个特定的错误实例吗? 我现在已将其关闭,但我想保留此设置,以防我的代码的其他区域实际上违反了规则。 【参考方案1】:

如果要禁用 ESLint 的单行,请添加以下内联注释:

this.id = this._id; // eslint-disable-line no-invalid-this

希望这会有所帮助!

【讨论】:

好主意。谢谢,我会用这个作为解决方案。

以上是关于猫鼬模式预保存中的 ESLint 意外“this”错误的主要内容,如果未能解决你的问题,请参考以下文章

在预保存回调中确定记录是不是“新”

在预保存回调中确定记录是不是“新”

测试猫鼬预保存钩子

猫鼬模型静态/方法不保存“this”中的值

预中间件中的猫鼬打字稿不存在

Nest.js/Mongoose:为啥我的预保存钩子无法触发?