JWT在使用mocha测试express应用程序时出现格式错误

JWT在使用mocha测试express应用程序时出现格式错误,express,testing,mocha.js,Express,Testing,Mocha.js,我正在尝试为我的用户路由编写测试文件。我遇到的一个问题是用户的删除路由。路由定义如下/api/users,并发出删除请求。这条路线受到保护,邮递员一切正常。我在Postman中设置的标题是授权 一切看起来都很好,但在我的测试文件中,结果有点奇怪。这是我的密码 describe('Users', () => { beforeEach((done) => { User.deleteMany({}, (err) => { done(); }); }

我正在尝试为我的用户路由编写测试文件。我遇到的一个问题是用户的删除路由。路由定义如下
/api/users
,并发出删除请求。这条路线受到保护,邮递员一切正常。我在Postman中设置的标题是授权

一切看起来都很好,但在我的测试文件中,结果有点奇怪。这是我的密码

describe('Users', () => {
  beforeEach((done) => {
    User.deleteMany({}, (err) => {
      done();
    });
  });    
describe('/DELETE user', () => {
    it('it should delete a user with authorized token', (done) => {
      const user = new User({
        username: 'testuser1',
        email: 'testuser1@gmail.com',
        password: 'password',
        passwordConfirm: 'password',
      });

      let token = null;

      chai
        .request(server)
        .post(`/api/users/signup`)
        .send(user)
        .end((err, res) => {
          token = res.body.token;
        });

      chai
        .request(server)
        .delete(`/api/users`)
        .set('Authorization', 'Bearer ' + token)
        .end((err, res) => {
          res.should.have.status(201);
          res.body.should.be.a('object');
          res.body.should.have.property('status').eql('success');
          res.body.should.have
            .property('message')
            .eql('User deleted successfully!');
        });
      done();
    });
  });
});
测试通过了,但我得到了这个JWT错误,我不知道为什么。我知道我在实际代币前使用的是持票人

这就是错误所提到的

(节点:3059)未处理的PromisejectionWarning:JsonWebTokenError:jwt格式不正确 (节点:3059)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。(拒绝id:2) (节点:3059)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程


我真的不明白发生了什么,因为当我在postman中测试它时,如果它工作正常,我在这里所做的就是使用
.set('Authorization','bearrier'+token)
添加令牌。在我看来,它应该工作相同。

我面临这个问题,问题是你必须在你的方法之前调用
.set()
,在这种情况下,
delete()

chai
.请求(服务器)

.set('Authorization'、'Bearer'+token)/我遇到了这个问题,问题是你必须在你的方法之前调用
.set()
,在这种情况下是
delete()

chai
.请求(服务器)
.set('授权'、'承载人'+令牌)//
chai
  .request(server)
  .set('Authorization', 'Bearer ' + token) //<-- This before .delete()
  .delete(`/api/users`)