我有一个 server-app
从客户端接收音频流。我正在尝试使用 chai
/chai-http
测试应用程序,但它给了我这个错误:
[Error: write after end]
有什么问题?
代码:
var chai = require('chai');
var chaiHttp = require('chai-http');
var server = require('../server-app');
var should = chai.should();
var fs = require('fs');
chai.use(chaiHttp);
describe('server', function() {
it('should work..', function (done){
var req = chai.request(server).post('/speech');
fs.createReadStream('./test.wav').pipe(req);
req.end(function (err,res){
console.log(err);//outputs: [Error: write after end]
done();
});
});
});
最佳答案
您在流完成将数据推送到请求之前调用 req.end
。
我会做以下事情:
var readstream = fs.createReadStream('./test.wav');
readstream.pipe(req);
readstream.on('close', someFunction);
readstream.on('end', someFunction);
并在流的关闭 或结束 事件中调用req.end
。您在发出这些事件中的任何一个之前调用 req.end。
关于node.js - chai-http 结束后写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34562260/