我不知道应该是什么问题,但我目前实现了将csv文件转换为JSON并将结果打印到console.log的函数
功能如下:
var Converter = require("csvtojson").Converter;
var converter = new Converter({delimiter: ';'});
function convertToJSON() {
converter.fromFile('data.csv', function(err, result) {
if (err) {
console.log(err);
}
var data = result;
console.log(result);
});
}
当我在server.js中以这种方式调用它时,它将JSON返回到控制台
convertToJSON();
但是当我想通过REST GET从app.get调用此函数时,它会返回allways空对象。
app.get("convertToJSON", function(req,res){
convertToJSON();
})
我不知道应该是什么问题,为什么它不能在里面接听电话。执行期间没有错误。
答案 0 :(得分:1)
您的代码已异步使用该功能中的承诺。 在app.get中调用时,您的文件需要更多时间加载。
function convertToJSON() {
var promise1 = new Promise(function(resolve, reject) {
converter.fromFile('data.csv', function(err, result) {
if (err) {
reject(err);
}
var data = result;
resolve(result);
});
});
return promise1;
}
答案 1 :(得分:0)
当我们使用Promise时,我们需要正确处理它。有关详细信息,请查看此reference。
试试这个......
var Converter = require("csvtojson").Converter;
var converterObj = new Converter({delimiter: ';'});
function convertToJSON() {
return new Promise((resolve, reject) => {
converterObj.fromFile('data.csv', (err, result) => {
if (err) {
reject(err);
}
resolve(result);
});
});
}
convertToJSON()
.then((result) => {
console.log(result);
})
.catch((error) => {
console.log(error);
});