gpt4 book ai didi

node.js - meteor .js : Parsing CSV on the server and passing back to client with node-csv-string

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:03 25 4
gpt4 key购买 nike

我正在开发一个项目,该项目涉及解析类似 CSV 的文件,其中分隔符是在解析时确定的。

我一直在使用 PapaParse,但不幸的是,分隔符检查似乎不够强大,所以我使用 https://github.com/touv/node-csv-string反而。到目前为止一切顺利。

我已经安装了 meteorhacks:npmmeteorhacks:async 但我不确定如何在服务器和客户端之间来回传递解析请求。我知道我需要使用回调来执行此操作,因为它是异步的,只是不确定如何进行。

在我的客户端,这就是我所拥有的:

var parsedData = Meteor.call("parseCSV", data);

在服务器上,我使用的方法如下:

Meteor.methods({
parseCSV: function (data) {
var CSV = Meteor.npmRequire('csv-string');
return CSV.parse(data);
}
});

尽管由于异步要求,这显然不会减少它。我尝试过类似的事情

var response = Async.runSync(function(done) {
CSV.parse((data), function(err, data) {
done(null, data);
console.log(data)
});
});

但说实话,这是一次黑暗中的尝试,而且没有奏效。我需要能够在客户端中通过 parsedData 访问解析后的 CSV。任何帮助将不胜感激!

最佳答案

您可以使用 Meteor 的 Meteor.wrapAsync方法。

Meteor.methods({
parseCSV: function (data) {
var CSV = Meteor.npmRequire('csv-string');
var parse = Meteor.wrapAsync(CSV.parse);
return parse(data);
}
});

发生这种情况的原因是 Meteor 正在使用 Node Fiber,并且要求您具有同步代码。您还可以实现 Fiber/future 并在回调中发送输出,但这是一个更复杂的解决方案,可能不需要。

关于node.js - meteor .js : Parsing CSV on the server and passing back to client with node-csv-string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com