将数据读取到网络服务器的最快方式

时间:2017-01-13 08:12:20

标签: node.js database

我正在寻找向网络服务读取数据的最快方式,数据不会经常更新,应该保持安全。

让服务器读取数据的最快方法是什么(将其全部加载到内存中除外)?

我正在使用Node JS

本地文件? readFileSync?

1 个答案:

答案 0 :(得分:0)

fs.readFileSync()将所有数据加载到内存中,因此应该用于非常大的文件。它也是阻塞所以它只应该用在事件循环的第一个刻度上。这意味着当您的服务在您使用require和其他阻塞调用的地方启动时可以使用它,但从不在任何事件处理程序,路由控制器等中使用它。如果您想要一次读取文件,则可以使用它用它。该函数有一个名为fs.readFile()的非阻塞版本,但它也将整个文件读入内存,因此当它可以在事件处理程序中使用时,它仍然不应该用于大文件。 / p>

加载文件并提供文件的最快方法是使用fs.createReadStream()并将其作为流传输。如果您正在使用Express,Hapi等框架,那么可能会有便利功能为您执行此操作,例如Express中的res.sendFile()

有关详细信息,请参阅: