node.js - 返回值在函数之外不起作用?

标签 node.js node-csv-parse

当我们在 .on('end') 函数内部的 console.log(restaurantdata) 返回日志,但在函数日志外部无法给出返回未定义的值时。

    var restaurantdata=[];
    fs.createReadStream('restaurantsa9126b3.csv')  
    .pipe(csv())
    .on('data', (data) => restaurantdata.push(data))  
    .on('end', () => {
        return restaurantdata; 

      }) 
      console.log(restaurantdata);
      yield this.render('home',{
        restaurantdata:restaurantdata,
    });

最佳答案

你可以试试这个...

function convert(data) {
    data = data.split('\n');
    var heading = data[0].split(',');
    var arr = [];
    var line,words,err;
    for(var i=1;i<data.length-1 ;++i){
        var obj = {};
        line=data[i];
        words = line.split(',');
        var k =0;
        for(var j=0;j<words.length;++j){
            if (words[j].indexOf('\"')==-1){
                obj[heading[k]] = words[j];
                k++;
            } else{
                err = [];
                err.push(words[j].substring(1,words[j].length));
                j++;
                while (words[j].indexOf('\"')==-1) {
                    err.push(words[j]); j++;
                }
                err.push(words[j].substring(0,words[j].length-1));
                obj[heading[k]] = err;
                k++;
            }
        }
        arr.push(obj);
    }
   return arr;
}

希望,这可以帮助你......

关于node.js - 返回值在函数之外不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55313846/

相关文章:

Javascript匿名函数向其添加对象

javascript - 使用csv-parser解析csv后如何获取输出?

javascript - 使用nodejs中的csv-parse模块忽略引号内的内容

node.js - 获取 CSV header 而不读取整个 Stream

javascript - npm csv-parse 不读取所有行

javascript - 在Wordpress中执行 Jest 测试时,如何修复import {}意外 token

javascript - Multer [NodeJS] 用于多个字段

javascript - nodejs 中的语法 babel

javascript - 模块 dotenv 仅用于开发吗?