Javascript 每次读取文件或加载到array Node.js
我需要知道我的想法是否好 我正在组装一个web服务器,它可以传输html文件js文件css文件,这是一种静态web服务器 由于它是静态的,我认为我只需要真正地读取一个文件,然后在开始时将其加载到一个数组中,以减少客户端请求时的文件读取 类似这样的代码Javascript 每次读取文件或加载到array Node.js,javascript,node.js,Javascript,Node.js,我需要知道我的想法是否好 我正在组装一个web服务器,它可以传输html文件js文件css文件,这是一种静态web服务器 由于它是静态的,我认为我只需要真正地读取一个文件,然后在开始时将其加载到一个数组中,以减少客户端请求时的文件读取 类似这样的代码 var tttt = [] var server = http.createServer(); server.on("request",function(request, response){ var etret = '/home/bo
var tttt = []
var server = http.createServer();
server.on("request",function(request, response){
var etret = '/home/bob/node-show/big-file.js';
var setHeader = function(file){
return {
'Content-Type': MIME.mime(file),
'Transfer-Encoding':'chunked',
'Connection': 'keep-alive'
};
}
if (!tttt[path.basename(etret)]) {
tttt[path.basename(etret)] = []
var test = fs.createReadStream(etret)
test.setEncoding('ascii')
test.on('data', function(data){
console.log(data)
tttt[path.basename(etret)].push(data)
});
test.on('close', function(data){
console.log('sadsad')
response.writeHead(200, setHeader(etret))
console.log(tttt[path.basename(etret)].length)
for (var i = 0; i < tttt[path.basename(etret)].length; i++) {
response.write(tttt[path.basename(etret)][i])
};
var erw = 0
for (var f = 0; f < tttt[path.basename(etret)].length; f++) {
erw = (erw + tttt[path.basename(etret)][f].length)
}
console.log(erw)
response.end()
});
}else{
response.writeHead(200, setHeader(etret))
console.log(tttt[path.basename(etret)].length)
for (var i = 0; i < tttt[path.basename(etret)].length; i++) {
response.write(tttt[path.basename(etret)][i])
};
var erw = 0
for (var f = 0; f < tttt[path.basename(etret)].length; f++) {
erw = (erw + tttt[path.basename(etret)][f].length)
}
console.log(erw)
response.end()
console.dir(server.connections)
}
//return _fontEnd(request, response);
}).listen(8000, function(){
console.log('HTTP server up');
});
var tttt=[]
var server=http.createServer();
打开服务器(“请求”,函数(请求,响应){
var etret='/home/bob/node show/big file.js';
var setHeader=函数(文件){
返回{
“内容类型”:MIME.MIME(文件),
“传输编码”:“分块”,
“连接”:“保持活动”
};
}
if(!tttt[path.basename(etret)]){
tttt[path.basename(etret)]=[]
var test=fs.createReadStream(etret)
test.setEncoding('ascii')
测试('data',函数(data){
console.log(数据)
tttt[path.basename(etret)].push(数据)
});
测试打开('close',功能(数据){
console.log('sadsad')
response.writeHead(200,setHeader(etret))
console.log(tttt[path.basename(etret)].length)
对于(var i=0;i
big-file.js大约有500kb,将50个文件加载到内存中以保存从硬盘读取的数据是否是一个好主意?缓存(静态文件)通常是一种常见做法,并且基于node.js的支持缓存。您可以在本文中看到磁盘和RAM之间的I/O成本