Javascript 来自此文件。@AntoineFrau我的帖子已更新。我一直在做一些研究,正在学习Express Server。据我所知,react是客户端,我的node/psql都是服务器端,因此我需要促进它们之间的通信,而这正是Express server所能做的。好的

Javascript 来自此文件。@AntoineFrau我的帖子已更新。我一直在做一些研究,正在学习Express Server。据我所知,react是客户端,我的node/psql都是服务器端,因此我需要促进它们之间的通信,而这正是Express server所能做的。好的,javascript,node.js,reactjs,web-site-project,Javascript,Node.js,Reactjs,Web Site Project,来自此文件。@AntoineFrau我的帖子已更新。我一直在做一些研究,正在学习Express Server。据我所知,react是客户端,我的node/psql都是服务器端,因此我需要促进它们之间的通信,而这正是Express server所能做的。好的,我明白了,是的,你完全正确,这段代码应该在Express应用程序上运行,然后从您的React向这个Express server.yourdatadb.js文件执行API调用,而且,您的代码不一致。为什么使用var?为什么要使用require导


来自此文件。@AntoineFrau我的帖子已更新。我一直在做一些研究,正在学习Express Server。据我所知,react是客户端,我的node/psql都是服务器端,因此我需要促进它们之间的通信,而这正是Express server所能做的。好的,我明白了,是的,你完全正确,这段代码应该在Express应用程序上运行,然后从您的React向这个Express server.your
datadb.js
文件执行API调用,而且,您的代码不一致。为什么使用
var
?为什么要使用
require
导入购买的物品?为什么要使用
模块导出这些东西。导出
?我认为您应该阅读Ecmascript的声明及其注释语法。你应该制作一个CodeSandBox并上传你的第三期再生产项目。也许有人会帮助你。因此,这两种解决方案的“可能”关键字。太棒了!感谢您提供的资源!一定要验证答案,它总是令人愉快的!
import React, { Component } from "react";
const database = require('../datadb/datadb.js'); //HERE is the line that causes compilation failure

/* 
A function that handles when the LoadData button is clicked. This will allow for the data to be loaded in and stored into a database that can then be referenced.
*/
function Data() {
  alert("'The data is loading'"); //Creates a pop up box
  //HERE is where I will want to execute my modules code
}

/*
This function creates a component for the buttons. 
*/
class LoadData extends Component {
  render() {
    return (
      <div className="App">
        <button onClick={Data}>Load Data</button>
        <button>Open</button>
        <button>Save</button>
      </div>
    );
  }
}
export default LoadData;
Failed to compile.

./src/datadb/node_modules/semver/semver.browser.js
  Line 1180:37:  'define' is not defined  no-undef
  Line 1181:3:   'define' is not defined  no-undef
  Line 1185:35:  'define' is not defined  no-undef
  Line 1186:3:   'semver' is not defined  no-undef
var fs = require('fs')
const {Client} = require('pg')






/**Connects to the client, then inserts all of the data from the given data array
 * 
 * @param {*} dataArray the data to insert
 * @param {*} client the DB client to connect to
 */
var insertRawData = async function(dataArray) {

    const client = new Client({
        user: "postgres",
        password: "password123",
        post: "5432",
        database: "first"
    })
    try {
        await client.connect()
        await client.query("BEGIN")

        var length = dataArray.length;
        for(let i = 0; i < length; i++) {
            queryString = "INSERT INTO rawdata.rawtable VALUES ( " + dataArray[i][0] + ", '" + dataArray[i][1] + "', " + dataArray[i][2] + ", " + dataArray[i][3] + ", " + dataArray[i][4] + ", " + dataArray[i][5] + ", " + dataArray[i][6] + ", " + dataArray[i][7] + ", " + dataArray[i][8] + ", " + dataArray[i][9] + ", " + dataArray[i][10] + ")" ;
            await client.query(queryString)
            console.log("NEW ROW INSERTED: " + queryString);
        }
        await client.query("COMMIT")

    } catch (err) {
        console.log("somethings wrong" + err)
    } finally {
        await client.end()
        console.log("Connection ended")
    }
}


/** 
 * Deletes all of the entries in the rawdata.rawtable table
 */
var deleteAllData = async function() {

    const client = new Client({
        user: "postgres",
        password: "password123",
        post: "5432",
        database: "first"
    })

    try {
        await client.connect()
        await client.query("DELETE FROM rawdata.rawtable WHERE year=1 OR year!=1")
    } catch (err) {
        console.log("somethings wrong" + err)
    } finally {
        await client.end()
        console.log("Connection ended")
    }
}


/** 
 * Returns the entire database
 */
var getAllData = async function () {
    const client = new Client({
        user: "postgres",
        password: "password123",
        post: "5432",
        database: "first"
    })

    var data;
    try {
        await client.connect()
        data = await client.query("SELECT * FROM rawdata.rawtable")
    } catch (err) {
        console.log("somethings wrong" + err)
    } finally {
        await client.end()
        console.log("Connection ended")
    }
    return data;
}

/** takes raw data returned from a SELECT psql query as input, returns the data 
 * in a 2d array format
 * 
 * @param {*} data the raw data returned from a query
 * @returns {*} the parsed data
 */
var parseDataFromQuery = async function(data){
    var returnValue = [];
    console.log("DATA: " + data.rows[0].year);

    var dataSize = data.rows.length;

    for(var i = 0; i < dataSize; i++){
        returnValue.push([data.rows[i].year, data.rows[i].month, data.rows[i].occupancy, data.rows[i].adr, data.rows[i].revpar, data.rows[i].supply, data.rows[i].demand, data.rows[i].revinue, data.rows[i].cprops, data.rows[i].crooms, data.rows[i].sparts]);
    }
    console.log(returnValue);
}



var selectTest = async function(){
    const client = new Client({
        user: "postgres",
        password: "password123",
        post: "5432",
        database: "first"
    })

    var data;
    try {
        await client.connect()
        data = await client.query("SELECT * FROM rawdata.rawtable WHERE year=9 AND month='Jan'")
    } catch (err) {
        console.log("somethings wrong" + err)
    } finally {
        await client.end()
        console.log("Connection ended")
    }

    console.log(parseDataFromQuery(data, ['year']));
    //return data;
}



/**
 * Exports the functions to be used elsewhere
 */
module.exports = {
    insertRawData: insertRawData,
    deleteAllData: deleteAllData,
    getAllData: getAllData,
    selectTest: selectTest,
    parseDataFromQuery: parseDataFromQuery
};