将静态 html 文件存储在节点快速服务器上的服务器变量中有什么好处吗?
Is there any advantage in storing static html files in a server variable on a node-express server?
我是 运行 一个使用 express 的小型节点服务器,在某些时候我决定将我的静态 html-内容存储在我的服务器上的变量中,而不是从磁盘提供它们,我想服务器应该以这种方式将它们存储在 RAM 中,从而更快地为它们提供服务。
但是,在寻找有关该主题的可靠信息时,我感到很失望,无法找到与该主题相关的任何信息。因此,我以这种方式征求对该主题的想法(或者甚至是对该主题的良好阅读material)。
最好的,
福赫拉克
示例代码:
const express = require('express')
, app = express()
, server = require('http').createServer(app)
, server = require('http').createServer(app)
, server_port = 8080
, server_ip_address = 'localhost';
server.listen(server_port, server_ip_address, () => {
console.log('listening on port '+ server_port);
});
app.use('/index', express.static('/Public/index.html'));
/*** vs ***/
const index = fs.readFileSync('/Public/index.html').toString();
app.get('/index', (req, res, next) => {
res.status(200).send(index);
});
如果文件很小,为什么不呢?
将文件缓存在变量中以使用内存 io 比 hdd io 更便宜。
但请记住跟踪文件更改并重新阅读它:
const staticFiles = {
'index': fs.readFileSync(__dirname+'/Public/index.html').toString();
};
fs.watch(__dirname+'/Public/index.html', () => {
staticFiles.index = fs.readFileSync(__dirname+'/Public/index.html').toString();
});
app.get('/index', (req, res, next) => {
res.status(200).send(staticFiles.index);
});
但我认为 express-static 中间件已经做到了。
读这个:http://expressjs.com/en/starter/static-files.html and this: https://github.com/expressjs/serve-static/blob/master/index.js
但我没有看到它正在将文件缓存到变量中。
我不关心这个问题,因为我在 nginx 后面使用 nodejs 应用程序,所以所有缓冲和静态文件服务都由 nginx 完成。
我是 运行 一个使用 express 的小型节点服务器,在某些时候我决定将我的静态 html-内容存储在我的服务器上的变量中,而不是从磁盘提供它们,我想服务器应该以这种方式将它们存储在 RAM 中,从而更快地为它们提供服务。
但是,在寻找有关该主题的可靠信息时,我感到很失望,无法找到与该主题相关的任何信息。因此,我以这种方式征求对该主题的想法(或者甚至是对该主题的良好阅读material)。
最好的, 福赫拉克
示例代码:
const express = require('express')
, app = express()
, server = require('http').createServer(app)
, server = require('http').createServer(app)
, server_port = 8080
, server_ip_address = 'localhost';
server.listen(server_port, server_ip_address, () => {
console.log('listening on port '+ server_port);
});
app.use('/index', express.static('/Public/index.html'));
/*** vs ***/
const index = fs.readFileSync('/Public/index.html').toString();
app.get('/index', (req, res, next) => {
res.status(200).send(index);
});
如果文件很小,为什么不呢?
将文件缓存在变量中以使用内存 io 比 hdd io 更便宜。
但请记住跟踪文件更改并重新阅读它:
const staticFiles = {
'index': fs.readFileSync(__dirname+'/Public/index.html').toString();
};
fs.watch(__dirname+'/Public/index.html', () => {
staticFiles.index = fs.readFileSync(__dirname+'/Public/index.html').toString();
});
app.get('/index', (req, res, next) => {
res.status(200).send(staticFiles.index);
});
但我认为 express-static 中间件已经做到了。
读这个:http://expressjs.com/en/starter/static-files.html and this: https://github.com/expressjs/serve-static/blob/master/index.js
但我没有看到它正在将文件缓存到变量中。
我不关心这个问题,因为我在 nginx 后面使用 nodejs 应用程序,所以所有缓冲和静态文件服务都由 nginx 完成。