проблема eslint для свойств с подчеркиванием в качестве префикса - PullRequest
0 голосов
/ 08 марта 2020

Я новичок в NodeJS и MongoDB, и, изучая некоторые онлайн-ресурсы, я создал схему mon goose как:

const mongoose = require('mongoose')

const blogSchema = mongoose.Schema({
  title: String,
  author: String,
  url: String,
  likes: Number,
})

blogSchema.set('toJSON', {
  transform: (document, returnedObject) => {
    returnedObject.id = returnedObject._id.toString()
    delete returnedObject._id
    delete returnedObject.__v
  }
})

Но eslint продолжает давать мне ошибки:

  1. для returnedObject.id, delete returnedObject._id и delete returnedObject.__v - Присвоение свойству параметра функции 'returnObject'.eslint (no-param-reassign)
  2. для returnedObject._id и returnedObject.__v - Неожиданное свисание '_' в '_id'.eslint (без подчёркивания)

snapshot of the eslint errors

Как правильно поступить в которые я могу удалить поля _id и __v и переназначить _id на id для returnedObject?

Я использую конфигурацию esbint на базе airbnb (devDependencies из package.json):

    "eslint": "^6.8.0",
    "eslint-config-airbnb-base": "^14.0.0",
    "eslint-plugin-import": "^2.20.1",

1 Ответ

0 голосов
/ 10 марта 2020

Как предложено @CherryDT и @slebetman в комментариях выше - в коде нет ничего плохого, и проблема связана только с конфигурацией eslint .

Я придумаю следующие решения:

Отключить для строки

Добавить комментарий над строкой, в которой вы видите эту ошибку:

// eslint-disable-next-line no-param-reassign, no-underscore-dangle
returnedObject.id = returnedObject._id.toString()

или рядом со строкой:

returnedObject.id = returnedObject._id.toString() // eslint-disable-line no-param-reassign, no-underscore-dangle

Отключить для файла

Добавить комментарий в первой строке файла:

/* eslint-disable no-param-reassign, no-underscore-dangle */

Отключить правило в конфигурации eslint (обычно .eslintrc.js, .eslintrc.yml или что-то похожее с именем .eslintrc.*)

rules: {
  no-underscore-dangle: off,
  no-param-reassign: off,
}

Пример выше, если для конфигурации yml нечто подобное можно сделать и с другими конфигурациями.

Первые два решения не годятся подходит для огромной базы кода, поэтому я рекомендую использовать третий вариант.

* В одном комментарии можно отключить несколько ошибок с разделением запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...