首页 > 解决方案 > 如何将数据从 BigQuery 移植到已经部署在 Google App Engine 上的 ReactJS webpack 应用程序中

问题描述

我已经成功地使用一些示例数据(基于vis academy教程)在 Google App Engine 上部署了一个基于 kepler.gl 的应用程序。我想要的是能够从 Big Query 中获取数据并将其作为源数据传递。

我尝试在nodejs-bigquery sample中实现该示例,但无法弄清楚如何将结果传递到主 app.js 文件中。我是应用程序开发和 javascript 的绝对初学者,因此我们将不胜感激任何帮助。

这是我的主 app.js 文件的样子

import React, {Component} from 'react';
import {connect} from 'react-redux';
import AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';
import KeplerGl from 'kepler.gl';

// Kepler.gl actions
import {addDataToMap} from 'kepler.gl/actions';
// Kepler.gl Data processing APIs
import Processors from 'kepler.gl/processors';

// Sample data
//import data from './data/bq.js'

.... 

这是错误输出:

ERROR in ./~/https-proxy-agent/index.js
Module not found: Error: Can't resolve 'net' in '/Users/saroosh/code/GAE/node_modules/https-proxy-agent'
 @ ./~/https-proxy-agent/index.js 5:10-24
 @ ./~/teeny-request/build/src/index.js
 @ ./~/@google-cloud/common/build/src/util.js
 @ ./~/@google-cloud/common/build/src/index.js
 @ ./~/@google-cloud/bigquery/build/src/index.js
 @ ./src/data/bq.js
 @ ./src/app.js
 @ ./src/main.js

ERROR in ./~/https-proxy-agent/index.js
Module not found: Error: Can't resolve 'tls' in '/Users/saroosh/code/GAE/node_modules/https-proxy-agent'
 @ ./~/https-proxy-agent/index.js 6:10-24
 @ ./~/teeny-request/build/src/index.js
 @ ./~/@google-cloud/common/build/src/util.js
 @ ./~/@google-cloud/common/build/src/index.js
 @ ./~/@google-cloud/bigquery/build/src/index.js
 @ ./src/data/bq.js
 @ ./src/app.js
 @ ./src/main.js

标签: node.jsgoogle-app-enginegoogle-bigquerykepler.gl

解决方案


这似乎是 webpack 的问题。我发现了一些与 webpack 集成相关的问题。我从这里得到了一些解决方法,你可以在这里找到更多信息。

至于变通方法,如果您使用的是vis academy 教程中提供的 webpack.config.js ,请尝试以下操作:

在 webpack.config.js 中替换这部分:

node: {
    fs: 'empty'
  },

有了这个:

node: {
    fs: 'empty',
    net: 'empty',
    tls: 'empty',
  },

@tanohzana 提供的解决方案


推荐阅读