Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 双重回拨!Node.js Chai_Javascript_Node.js_Mocha.js_Chai - Fatal编程技术网

Javascript 双重回拨!Node.js Chai

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

这段代码正在抛出双重回调!错误后跟:

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)

错误看起来是随机的,有时会发生,有时不会

 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

在哪里实例化服务器?通常在测试中,您希望在测试期间构建/拆除服务器,而不是让它在测试本身之外运行。可能是某个地方的竞争条件。在外部、本地运行它。您在哪里实例化服务器?通常在测试中,您希望在测试期间构建/拆除服务器,而不是让它在测试本身之外运行。可能是某个地方的比赛条件。在室外,本地运行