Javascript 如何解析大数据?
我有一个Javascript 如何解析大数据?,javascript,node.js,express,Javascript,Node.js,Express,我有一个express.js应用程序。用户请求mysite.com/something,并收到大量文本。在每次请求之后,我都需要解析数据(例如,在文本中查找某些内容并将其放入我的Redis数据库) 问题是解析数据需要太多时间,而且是同步的,这意味着用户必须等到解析完成后才能获取数据 有没有办法解析另一个.js文件中的数据并允许用户立即获得结果
express.js
应用程序。用户请求mysite.com/something
,并收到大量文本。在每次请求之后,我都需要解析数据(例如,在文本中查找某些内容并将其放入我的Redis
数据库)
问题是解析数据需要太多时间,而且是同步的,这意味着用户必须等到解析完成后才能获取数据
有没有办法解析另一个.js文件中的数据并允许用户立即获得结果如果数据量较大,则应该考虑使用节点流来解析数据量。用于轻松创建变换流。使用streams,您将一次处理一个数据块(一个对象、一个csv行、一个xml标记),并立即将其逐块流式传输到响应块
此外,您不应该在应用程序中使用任何同步代码。一切都应该是异步的。谢谢你能给我举个例子吗?@Taylor看一看。这是一个很好的起点,尽管流很棘手。这意味着,如果流文件需要10秒,而向用户提供数据需要1秒,那么所有用户都会在我的网站上花费1秒?@Taylor我不确定你在问什么。流式处理更好,因为它一次处理一个数据块,避免一次将所有数据加载到内存中,这对于大量数据来说会耗尽可用的RAM,从而破坏您的性能代码>等待解析完成。我想执行另一个.js文件来解析我的数据,而且用户不必等待解析。将解析脚本放在单独的文件中,然后使用child_process.exec异步执行该文件并在应用程序中返回输出。
app.get('something', function (req, res) {
var data = //getting data
res.send(data);
//parsing data
});