我有简单的快递服务器,看起来像这样:
Epxress应用程序:
var express = require('express');
var compression = require('compression');
var path = require('path');
var cors = require('cors');
var router = express.Router();
var app = express();
app.use('/bundle', express.static(path.join(__dirname, '/bundle')));
app.enable('trust proxy');
app.use(compression());
app.get('*', function(req, res) {
res.header('Cache-Control', "max-age=60, must-revalidate, private");
res.sendFile( path.join(__dirname, 'index.html') );
});
var server = app.listen(process.env.PORT || 5000, function () {
var host = server.address().address;
var port = server.address().port;
console.log(`Example app listening at http://%s:%s`, host, port);
});
Run Code Online (Sandbox Code Playgroud)
简单的html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>React …Run Code Online (Sandbox Code Playgroud) 我有一个函数,在完美的世界中应该创建一个巨大的 1M 行文件。这里是:
const fileWriteStream = fs.createWriteStream(path.resolve(filePath));
let ableToWrite = true;
for (let i = 0; i < 1e6; i++) {
if (ableToWrite) {
ableToWrite = fileWriteStream.write(`.testClass${itr}-${i%2} { background: red } \n`);
} else {
fileWriteStream.once('drain', () => {
ableToWrite = fileWriteStream.write(`.testClass${itr}-${i%2} { background: red } \n`);
})
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我很快就收到以下错误:
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added. Use emitter.setMaxListeners() to increase limit
Run Code Online (Sandbox Code Playgroud)
我真的不想增加此功能的听众数量。使用流写入这么大的文件的正确方法是什么?
非常感谢!