首页 > 解决方案 > cursor.buffer.readInt32LE 不是函数

问题描述

我使用NuxtJS,我想从 URL 读取镶木地板文件。所以我尝试使用parquetjs-lite库(https://github.com/ZJONSSON/parquetjs)。但是,当我使用该cursor.next()方法读取记录时出现错误。该文件似乎是正确的格式,因为我可以通过 url 下载它并通过这个网站阅读它:https ://parquet-viewer-online.com

我忘记了依赖项?

我的代码:

async readParquetFile(url) {
    const parquet = require('parquetjs-lite');
    const request = require('request');
    let reader = await parquet.ParquetReader.openUrl(request, url)
    let cursor = reader.getCursor();
    let record = null;
    while (record = await cursor.next()) {   // error TypeError: cursor.buffer.readInt32LE is not a function
        console.log(record);
    }
}

错误:

TypeError: cursor.buffer.readInt32LE is not a function
    at decodeValues_INT32 (plain.js?8f9a:42)
    at Object.exports.decodeValues (plain.js?8f9a:251)
    at decodeValues (reader.js?245a:614)
    at decodeDataPage (reader.js?245a:832)
    at decodePage (reader.js?245a:670)
    at decodePages (reader.js?245a:713)
    at eval (reader.js?245a:577)
    at async ParquetEnvelopeReader.readRowGroup (reader.js?245a:535)
    at async ParquetCursor.next (reader.js?245a:60)

我在这些依赖项中使用 NuxtJspackage.json

"dependencies": {
    "@nuxtjs/axios": "latest",
    "@nuxtjs/pwa": "latest",
    "fs": "latest",
    "net": "latest",
    "tls": "latest",
    "nuxt": "latest",
    "parquetjs-lite": "latest",
    "request": "latest"
},

并且有了这个内置nuxt.config.js

build: {
    extend(config, {}) {
        config.node = {
            fs: 'empty',
        }
    }
},

标签: nuxt.jsparquetjs

解决方案


推荐阅读