Javascript 双重回拨!Node.js Chai
这段代码正在抛出双重回调!错误后跟: TypeError:无法读取未定义的属性“status” 一声令下。(node\u modules\chai\lib\chai\core\assertions.js:890:14) 在Assertion.ctx.(匿名函数)[作为属性](node_modules\chai\lib\chai\utils\addMethod.js:41:25) 一声令下。(node_modules\chai http\lib\http.js:80:38) at Assertion.ctx.(匿名函数)[as status](node_modules\chai\lib\chai\utils\addMethod.js:41:25) 在tests\unitTest\helloWorld.js:16:37 在Test.Request.callback(node\u modules\chai http\node\u modules\superagent\lib\node\index.js:615:12) 在ClientRequest。(node\u modules\chai http\node\u modules\superagent\lib\node\index.js:567:10) 位于Socket.socketErrorListener(_http_client.js:269:9) 在emitErrorNT(net.js:1269:8) 错误看起来是随机的,有时会发生,有时不会Javascript 双重回拨!Node.js Chai,javascript,node.js,mocha.js,chai,Javascript,Node.js,Mocha.js,Chai,这段代码正在抛出双重回调!错误后跟: TypeError:无法读取未定义的属性“status” 一声令下。(node\u modules\chai\lib\chai\core\assertions.js:890:14) 在Assertion.ctx.(匿名函数)[作为属性](node_modules\chai\lib\chai\utils\addMethod.js:41:25) 一声令下。(node_modules\chai http\lib\http.js:80:38) at Assertio
var chai = require('chai')
, chaiHttp = require('chai-http');
chai.use(chaiHttp);
var assert = require('assert');
var expect = chai.expect;
require('should-http');
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function(done) {
//assert.equal(-1, [1,2,3].indexOf(4));
//console.log("x")
chai.request('http://192.168.99.100:8080').get('/hello').end(function (err, res) {
expect(res).to.have.status(200);
res.text.should.equal('hello world2');
done();
});
});
});
});
文档:我看不到双重回调!您在堆栈跟踪中提到的错误。有没有可能你忘了复印什么东西?对我来说,更多的感觉是服务器超时,返回超时错误,并且由于超时,res var在回调中未定义,然后由于尝试访问未定义的var而中断。您可以尝试增加测试的超时,如下所示:
this.timeout(4000);
并在回调中放入一些console.log,查看它正在打印什么。另外,如果您运行多个测试,请确保服务器在运行其他测试时不会崩溃,在此之前。我看不到双重回调!您在堆栈跟踪中提到的错误。有没有可能你忘了复印什么东西?对我来说,更多的感觉是服务器超时,返回超时错误,并且由于超时,res var在回调中未定义,然后由于尝试访问未定义的var而中断。您可以尝试增加测试的超时,如下所示:
this.timeout(4000);
并在回调中放入一些console.log,查看它正在打印什么。此外,如果您运行多个测试,请确保在运行其他测试之前,服务器不会在运行其他测试时崩溃。结果表明,问题在于每次更改文件的新版本时,服务器都会重新启动,有时地址/端口不可用:
-错误侦听:EADDRINUSE::5858结果表明,问题在于每次更改文件的新版本时,服务器都会重新启动,有时地址/端口不可用:
-错误侦听:EADDRINUSE::5858在哪里实例化服务器?通常在测试中,您希望在测试期间构建/拆除服务器,而不是让它在测试本身之外运行。可能是某个地方的竞争条件。在外部、本地运行它。您在哪里实例化服务器?通常在测试中,您希望在测试期间构建/拆除服务器,而不是让它在测试本身之外运行。可能是某个地方的比赛条件。在室外,本地运行