2015-03-16 3 views
2

Я использую mocha и supertest для создания функциональных тестов. Ниже приведена копия теста.loopback.io Ошибка: не удается установить заголовки после их отправки. подтвердите пользователя

it("should verify user POST /api/User/confirm", function (done) { 
    app.models.Users.findById(userId, function (err, usr) { 
     json('get', '/api/user/confirm?uid=' + userId + '&token=' + usr.verificationToken) 
     .expect(204,done); 
    }); 
}); 

Однако этот тест возвращает:

Error: Can't set headers after they are sent. 
    at ServerResponse.OutgoingMessage.setHeader (http.js:689:11) 
    at ServerResponse.res.setHeader (/node_modules/loopback-explorer/node_modules/express/node_modules/connect/lib/patch.js:134:22) 
    at ServerResponse.header (/node_modules/loopback/node_modules/express/lib/response.js:700:10) 
    at ServerResponse.send (/node_modules/loopback/node_modules/express/lib/response.js:154:12) 
    at ServerResponse.json (/node_modules/loopback/node_modules/express/lib/response.js:240:15) 
    at ServerResponse.send (/node_modules/loopback/node_modules/express/lib/response.js:142:21) 
    at defaultHandler (/node_modules/loopback/node_modules/strong-remoting/lib/rest-adapter.js:379:11) 
    at restErrorHandler (/node_modules/loopback/node_modules/strong-remoting/lib/rest-adapter.js:348:14) 
    at Layer.handle_error (/node_modules/loopback/node_modules/express/lib/router/layer.js:58:5) 
    at trim_prefix (/node_modules/loopback/node_modules/express/lib/router/index.js:300:13) 
    at /node_modules/loopback/node_modules/express/lib/router/index.js:270:7 
    at Function.proto.process_params (/node_modules/loopback/node_modules/express/lib/router/index.js:321:12) 
    at next (/node_modules/loopback/node_modules/express/lib/router/index.js:261:10) 
    at Layer.handle_error (/node_modules/loopback/node_modules/express/lib/router/layer.js:54:12) 
    at trim_prefix (/node_modules/loopback/node_modules/express/lib/router/index.js:300:13) 
    at /node_modules/loopback/node_modules/express/lib/router/index.js:270:7 
    at Function.proto.process_params (/node_modules/loopback/node_modules/express/lib/router/index.js:321:12) 
    at Object.next (/node_modules/loopback/node_modules/express/lib/router/index.js:261:10) 
    at Object. (/node_modules/loopback/node_modules/express/lib/router/index.js:603:15) 
    at Object. (/node_modules/loopback/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31) 
    at Object.immediate._onImmediate (timers.js:363:16) 
    at processImmediate as _immediateCallback 

Я использую последнюю версию шлейфа в этой точке. Может ли кто-нибудь указать мне в правильном направлении?

+0

Ну, хотя я не вижу, как это приведет к ошибке, которую вы видите, вы выполняете запрос 'GET', когда конечная точка'/api/user/confirm' принимает только 'POST' ... но снова , Я не знаю, почему это может вызвать такую ​​ошибку. – jakerella

+0

Я предполагал, что это должен быть POST, однако из моего исследователя описание GET – N00b3eva

ответ

1

Это типично результат многократного использования res.send() в коде. Я бы проверить, если это так.

 Смежные вопросы

  • Нет связанных вопросов^_^