'err' уже объявлен в верхней области видимости - PullRequest
1 голос
/ 21 января 2020

Мой код не дает ошибок, просто я должен встретиться с eslint, поскольку он дает ошибку 'err' уже объявлен в верхней области. Как исправить это в моем коде здесь.

describe('/GET/:ID', () => {
  it('should Get the task by ID', (done) => {
    const book = new Task({ task: 'The Lord of the Rings' });
    book.save((err, task) => {
      chai.request(server)
        .get(`/task/${task.id}`)
        .send(task)
        .end((err, res) => {
          expect(res).to.have.status(200);
          done();
        });
    });
  });
});

Ответы [ 2 ]

2 голосов
/ 21 января 2020

ESlint предупреждает вас о затенении переменной не потому, что это вызовет ошибку или не сработает, а просто потому, что иногда это может быть непреднамеренным и, как следствие, непредвиденное поведение, например, вы хотите использовать err из book.save внутри вашего chai обратного вызова?

Чтобы исправить, просто используйте более явные соглашения об именах, например saveErr / chaiErr

0 голосов
/ 21 января 2020

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

describe('/GET/:ID', () => {
  it('should Get the task by ID', (done) => {
    const book = new Task({ task: 'The Lord of the Rings' });
    book.save((err, task) => {
      chai.request(server)
        .get(`/task/${task.id}`)
        .send(task)
        .end((error, res) => {
          expect(res).to.have.status(200);
          done();
        });
    });
  });
});
...